无头Chrome在页面上查找输入字段

时间:2017-08-16 09:12:11

标签: java google-chrome selenium-webdriver google-chrome-headless

我初始化了driver,如下所示:

ChromeOptions chromeOptions = new ChromeOptions();
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
chromeOptions.addArguments("--headless");
driver = new ChromeDriver(chromeOptions);

当我执行测试时,我收到以下消息。

  

启动ChromeDriver 2.31.488763   (092de99f48a300323ecf8c2a4e2e7cab51de5ba8)在44655港口   允许连接。

     

org.openqa.selenium.TimeoutException:30秒后超时   等待位于以下位置的元素的存在:By.xpath:

鉴于xpath属于输入字段,单击时会打开文件选择器。它在正常Firefox中完美运行。 我使用WebDriverWait等待必要的元素出现。

wait.until(ExpectedConditions.presenceOfElementLocated(mainPage.InputFileField));

1 个答案:

答案 0 :(得分:2)

声明--headless参数时,无论“ --start-maximized”参数或 “ driver.manage()window()。maximize();”命令。

如果您的网页在50%响应模式下具有不同的DOM,则找不到无响应模式下的DOM元素。

如果是这样的话:

  • 您可以调整查询选择器以考虑响应模式
  • 或者在驱动程序实例化后添加:

    this.webDriver.manage()。视窗()。 setSize(new Dimension(1440,900));

对不起,我的英语不好,但是我希望这对您有帮助;)