【发布时间】:2019-11-06 04:30:37
【问题描述】:
我告诉 Selenium 等到它看到一个元素 - Selenium 看到它 我告诉 Selenium 点击这个元素,它是一个链接到新页面的按钮 - Selenium 点击它。
问题是,点击之后,Selenium 会一直等到下一页完全加载(页面有时会在一秒钟内加载,或者等待很长时间,我认为这是该页面上 Zen Desk Live Chat 的问题) .
当它完全加载时,它会抛出一个错误并说它点击的元素看不到(自然看不到,因为它现在在新页面上)
我已尝试使用
更改等待时间driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
然而这并没有帮助。 我也试过了
wait.until(ExpectedConditions.visibilityOfElementLocated(
By.xpath(element)));
但是这有同样的问题。
下面是我目前正在使用的代码。
try {
wait.until(ExpectedConditions.visibilityOfElementLocated(
By.xpath(element)));
WebElement we = driver.findElement(By.xpath(element));
we.click();
System.out.println("Clicked: " + element);
}catch (Exception e){
System.out.println(e.getMessage());
}
我希望一旦单击该元素,Selenium 就会继续运行,而不关心下一页是否已加载。
但是,当第二个页面加载时会发生什么情况,有时页面会卡住“等待 widget-mediator.zopim.com”,并且 Selenium 在 WebDriverWait 时间到期之前不会超过 click() 行(60秒) 60 秒过后,我在控制台输出中看到此错误:
[1561374309.111][SEVERE]: Timed out receiving message from renderer: 60.000
[1561374309.112][SEVERE]: Timed out receiving message from renderer: -0.002
这里发生了其他事情吗?还是 Click() 等到页面加载完毕,如果单击将其带到新页面?如果确实如此,有没有办法告诉它停止等待?我有其他代码来检查页面是否已加载,但我不需要 Click() 来执行此操作。
提前致谢。
【问题讨论】:
标签: java selenium-webdriver webdriver click