我在所有浏览器中自动化一个带有两个文件上传按钮的页面。这是代码片段: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">
元素的规范语言。
添加回答
举报
0/150
提交
取消