【发布时间】:2018-12-30 23:19:09
【问题描述】:
我将 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 (用 500 尝试了 30 秒 毫秒间隔)
在 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] /标签"}
【问题讨论】:
-
错误是因为 //*[@id="formUpload"]/p[1]/label , xpath 。你能分享提到的xpath的HTML代码吗?由于 iframe 可以引发 NoSuchElement。检查是否涉及任何 iframe。
-
@cruisepandey :是的,该页面上有 iframe。
<label class="forFileInput" for="fileUpA" multiple="">Choose a file!</label>该字段位于<fieldset>内。
标签: selenium selenium-webdriver selenium-chromedriver google-chrome-headless