为了账号安全,请及时绑定邮箱和手机立即绑定

Firefox Gecko 驱动程序无法单击类型为“文件”的输入元素

Firefox Gecko 驱动程序无法单击类型为“文件”的输入元素

慕斯王 2021-09-29 13:24:59
我在所有浏览器中自动化一个带有两个文件上传按钮的页面。这是代码片段:WebElement thumbnailClick = driver.findElement(By.id("PageForm_tile_src"));jse.executeScript("scroll(0, 250)");thumbnailClick.click();这是点击第一个上传按钮,这在 Chrome 中完美运行,但尝试在 Firefox gecko 驱动程序上运行会引发InvalidArgumentException: Cannot click <input type=file> elements错误我必须通过 id 找到这些元素,因为此页面上有多个上传按钮。当手动操作很容易并且可以在任何其他浏览器上运行时,为什么 Firefox 会拒绝此单击?添加元素的 HTML:<input name="PageForm[tile_src]" id="PageForm_tile_src" type="file">
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

Firefox(通过 geckodriver)在这里运行正常,而 Chrome 则没有。的W3C规范的webdriver,在其所述的描述在第14.1节元素点击算法,步骤3中指出:“如果该元素是在文件上传状态的输入元件1,与错误代码无效的参数返回错误”

当 Chromium 团队完成 chromedriver 的规范合规性时,它的行为将与 geckodriver、IEDriverServer.exe、Microsoft Edge 驱动程序实现的当前预览版本以及 Apple 刚刚发布的 Safari 12 驱动程序实现相同。

要使用 WebDriver 成功上传文件,您应该使用sendKeys带有要上传文件的完整路径的方法。

1版。注意:“处于文件上传状态”是<input type="file">元素的规范语言。


查看完整回答
反对 回复 2021-09-29
  • 1 回答
  • 0 关注
  • 233 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号