【发布时间】:2018-04-10 07:37:41
【问题描述】:
我有一个基于Selenium WebDriver 的脚本来自动上传文件。它一一上传文件列表。我使用AutoIT 脚本来处理对话窗口、文件选择器窗口。参数$CmdLine[1]包含实际文件的路径。
ControlFocus("Open a file","","Edit1")
ControlSetText("Open a file","","Edit1", $CmdLine[1])
ControlClick("Open a file","","Button1")
我从Java代码执行如下:
Runtime.getRuntime().exec(autoITExecutable);
它会打开对话窗口,因此如果不关注浏览器窗口就无法工作。
文件上传字段的工作方式如下演示: https://encodable.com/uploaddemo/
【问题讨论】:
-
而使用
element.sendKeys()上传文件将无法正常工作,因为...? -
@JimEvans :我在大多数情况下都使用该解决方案,但它不适用于该字段,它无法接收文件。
-
@plaidshirt,可以看看这个网站吗?你也可以在这里发布有问题的元素的html吗?
-
@plaidshirt,当您在此字段上执行
sendKeys时会发生什么?什么都没有发生,或者当您提交时什么也没有发生?您还可以检查网络选项卡,看看发布的数据有什么问题吗?或者是否有任何控制台错误。在大多数情况下,可以使用 sendkeys 和一些额外的解决方法代码来处理这种情况。所以通常不需要使用原生窗口 -
通过 selenium 为我工作
标签: selenium-webdriver selenium-chromedriver autoit