gpt4 book ai didi

java - Firefox Gecko 驱动程序无法单击类型为 "file"的输入元素

转载 作者:行者123 更新时间:2023-12-01 19:48:14 24 4
gpt4 key购买 nike

我正在跨所有浏览器自动化一个带有两个文件上传按钮的页面。这是代码片段:

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">

最佳答案

Firefox(通过 geckodriver)在这里表现正常,而 Chrome 则不然。 W3C WebDriver Specification ,在其描述中Element Click algorithm in Section 14.1 ,第 3 步指出:“如果该元素是文件上传状态中的输入元素1,则返回错误,错误代码无效参数。”

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

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

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

关于java - Firefox Gecko 驱动程序无法单击类型为 "file"的输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52411584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com