如果需要加载年龄,如何使用ChromeDriver处理网站?

时间:2017-05-09 19:41:34

标签: selenium selenium-webdriver webdriver

我正在尝试创建一个测试https://www.mail.com/int/的脚本,但该网站似乎需要花费很长时间才能加载(加载工具栏'圈子似乎永远不会停止),我添加了页面加载超时,但似乎需要比预期更长的时间加载,任何想法?

enter image description here

2 个答案:

答案 0 :(得分:1)

是的,确实很慢。在开发人员工具中检查时>网络,由于GIF和其他数据繁重的请求,加载需要大约30秒。 enter image description here

您应该使用WebDriverWait来处理此类情况:

WebDriverWait wait = new WebDriverWait(driver, 30);
boolean pageLoaded = wait.until(ExpectedConditions.jsReturnsValue("return document.readyState")).equals("complete");
System.out.println("Page has loaded? " + pageLoaded);

以上似乎对我有用。试试吧,让我知道。

答案 1 :(得分:0)

使用explicit wait直到您要测试的元素加载。

你没有指定语言,所以我假设是C#。

using (IWebDriver driver = new ChromeDriver())
{
    driver.Url = "https://www.mail.com/int/";
    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    IWebElement myDynamicElement = wait.Until<IWebElement>(d => d.FindElement(By.Id("someDynamicElement")));
}