selenium - 无法在无头 Chrome 中上传文件
问题描述
我将 WebDriver 3.12.0 和 ChromeDriver 2.40 与 Chrome 67 一起使用。我初始化驱动程序变量如下:
driver = new ChromeDriver(new ChromeOptions().setExperimentalOption("prefs", prefs).addArguments("--start-maximized").setHeadless(true));
TimeoutException
当我在无头模式下执行它时,我得到了这条线。当我在正常模式下执行它时它工作正常。
wait.until(ExpectedConditions.presenceOfElementLocated(mainPage.labelForInputFileField));
错误信息:
org.openqa.selenium.TimeoutException:预期条件失败:等待存在的元素位于:By.xpath://*[@id="formUpload"]/p[1]/label(尝试了 30 秒)以 500 毫秒间隔)
在 org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80) 在 org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:265) 引起:org.openqa.selenium .NoSuchElementException:没有这样的元素:无法找到元素:{"method":"xpath","selector":"//*[@id="formUpload"]/p[1]/label"}
解决方案
尝试添加以下 Chrome 选项:
options.addArguments("--proxy-server='direct://'");
options.addArguments("--proxy-bypass-list=*");
它使无头执行更快。
推荐阅读
- javascript - React 使用仪表板构建 CMS 如何显示隐藏仪表板组件
- swift - 即使在设备旋转之后也约束/居中 CAEmitterLayer
- python - pyrequests 将 dict 值编码为 JSON 中的列表
- r - 为什么 dplyr 过滤器不接受整数数据帧?
- java - 为什么我收到 java.sql.SQLException:当 url 正确且驱动程序存在时找不到合适的驱动程序?
- python - 如何根据第一次出现的唯一列值获取行
- localforage - 如何为移动应用初始化 localForage
- javascript - 如何从异步函数中获取数据并在获取数据后允许下一个代码执行
- java - 限制在 firebase 实时数据库中添加的子项数量
- java - 如何在android studio中的背景图像上显示gif