在Java中使用Selenium Webdriver
例如,我们有很多字段,如下图所示
我尝试使用显式等待
i)等待元素加载(但是元素是动态加载的,直到我单击并等待几秒钟后才会填充)
但直到我停顿了几秒钟后才起作用。
我正在使用以下方法
我正在创建一个框架,想知道程序员在其他组织中是否确实使用类似的方法来暂停脚本或不使用脚本?因为我需要这么多地使用它。
由于我不想使用Thread.sleep,请使用下面的方法。
public static void customewait(int seconds){
Date start = new Date();
Date end = new Date();
while(end.getTime() - start.getTime() < seconds * 1000){
end = new Date();
}
}
答案 0 :(得分:0)
您可以使用硒提供的等待,如下所示:
WebDriverWait wait = new WebDriverWait(driver, 5000);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("idOfElement")));
此代码将等待元素显示5000毫秒,并在找到该元素时初始化该对象。
5000是超时时间(以毫秒(ms)为单位)
您可以在this link
阅读更多内容答案 1 :(得分:0)
Thread.sleep 将在给定时间内停止执行线程,而 Webdriver wait 仅等待直到不满足上述条件。因此,最佳实践是使用Web驱动程序等待。
By ByLocator = By.xpath("Any XPath");
int seconds = 5 * 1000; // seconds in milli.
WebDriverWait wait = new WebDriverWait(driver, seconds);
wait.until(ExpectedConditions.presenceOfElementLocated(ByLocator));