我正在使用硒Web驱动程序进行测试。问题是,当我的URL更改时,getCurrentURL给我当前的URL。我为此使用driver.sleep方法。但是driver.sleep方法的问题是我必须传递固定的时间使其在URL更改后才能运行。有什么方法可以随着我的URL更改而运行(寻找不需要显式声明时间的其他睡眠方式)?
答案 0 :(得分:1)
答案 1 :(得分:1)
您找到等待特定行为而不是使用固定时间的方法肯定是正确的。
它的实现方式取决于实现方式。例如,如果您使用的是量角器框架,则以下方法应该起作用:
var EC = browser.ExpectedConditions;
browser.wait(EC.urlContains('Expected URL'), timeout); // Checks that the current URL contains the expected text
browser.wait(EC.urlIs('Expected URL'), timeout); // Checks that the current URL matches the expected text
无论如何,希望您可以将此逻辑适应您的情况。
答案 2 :(得分:0)
我们可以通过使用轮询技术来实现。编写一个循环,每2秒检查一次当前URL是否更改的地方。这是示例代码。
String currentUrl = driver.getCurrentUrl();
String newUrl ;
do {
newUrl = driver.getCurrentUrl();
Thread.sleep(5);
}while(newUrl.contentEquals(currentUrl));
//if control came out of loop , then you have new url