2

我初始化driver如下图:

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

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

在端口 44655 上启动 ChromeDriver 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8) 只允许本地连接。

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

给定 xpath 属于输入字段,单击时会打开文件选择器。它在正常情况下工作得很好Firefox。我WebDriverWait习惯于等到必要的元素出现。

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

1 回答 1

2

当声明 --headless 参数时,驱动程序被抛到最小化窗口 50%,而不管“--start-maximized”参数或“driver.manage()window().maximize();”命令。

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

如果是这样的话:

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

    this.webDriver.manage()。窗户 ()。setSize (新维度 (1440, 900));

对不起我的英语不好,但我希望这会帮助不止一个;)

于 2018-07-09T08:59:52.383 回答