【问题标题】:automated file upload selenium ide 2.8 on macmac上的自动文件上传selenium ide 2.8
【发布时间】:2014-12-02 03:37:13
【问题描述】:

我在将文件自动上传到网站时遇到问题。

我在 Mac 上通过 firefox 31 使用 selenium IDE 2.8 版,在我的工作中通过浏览器测试 Web 系统的进程。 在此过程的某一时刻,它需要我上传一个 Excel 文件。

我已经在许多论坛和博客中搜索了专门用于在 MacOS X 上使用 Firefox 和 Selenium IDE 的解决方案,但没有任何帮助。

在我的脚本中,我有:

command : click

Target : name=...

value :

此行将单击具有文本单词“选择文件”的按钮 然后会弹出“文件上传”对话框窗口让我选择要下载的文件

命令:输入 目标:driver.FindElement(By.Id("文件上传")) 值:/Users/...../excel.xlsx

这一行应该在“文件上传”中通过 id 路径查找元素,并选择我在值列中指定的文件路径。

出现问题: [错误] 未找到元素 driver.FindElement(By.Id("File Upload"))

据我了解,我不确定它是否正确,但根据我阅读和理解的内容,对其他人有些作用,但对我不起作用。我错过了什么吗?

【问题讨论】:

    标签: javascript file-upload automation selenium-ide firefox-os


    【解决方案1】:

    对于这部分:

    命令:类型目标:driver.FindElement(By.Id("File Upload")) 值:/Users/...../excel.xlsx

    你能把目标改成 id=File Upload 吗?

    【讨论】:

    • 那是我一开始尝试的第一件事,但是由于上传文件按钮,脚本执行点击浏览器将打开一个 mac 窗口对话框供我选择文件。通常我不断收到 Element not found 的错误,无论是 id=File Upload 还是 driver.FindElement(By.Id("File Upload"))
    • 这很奇怪,这就是我在我的一个自动化测试中处理文件上传的方式。也许我们的元素工作方式不同?类型 | id=文件输入 | /Users/Dan/Downloads/NewPOFile.csv
    【解决方案2】:

    您所说的弹出窗口是一个操作系统弹出窗口,您不能简单地将它与 selenium 一起使用 使用 xpath 将密钥发送到标签,例如“ //input[@type='file'] ” 然后提交表单

    【讨论】:

    • selenium ide 的版本和浏览器类型(chrome、FF)是否会影响命令列中指定的元素类型?
    • 所有 IDE 和浏览器的 xpath 都是相同的,只需与要测试的路径完全相同,手动尝试,即单击输入标签会提示选择文件,当您选择文件时,它会自动上传如果它需要按下某种提交按钮,那么你也需要处理它:)快乐学习
    • 非常感谢。我刚刚得到通知,实际上我正在处理的网站在界面上有一些错误,所以它没有显示文件的路径,但无论如何“//input[@type='file']”现在对我有用。
    猜你喜欢
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    相关资源
    最近更新 更多