直到我暂停脚本几秒钟,等待元素加载才起作用

时间:2019-02-22 05:06:31

标签: java selenium-webdriver testng browser-automation

在Java中使用Selenium Webdriver

例如,我们有很多字段,如下图所示
我尝试使用显式等待 i)等待元素加载(但是元素是动态加载的,直到我单击并等待几秒钟后才会填充) 但直到我停顿了几秒钟后才起作用。 我正在使用以下方法

我正在创建一个框架,想知道程序员在其他组织中是否确实使用类似的方法来暂停脚本或不使用脚本?因为我需要这么多地使用它。 enter image description here

由于我不想使用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();
     }
 }

2 个答案:

答案 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));