使用Selenium WebDriver(JavaScript)检测URL更改

时间:2019-05-13 12:08:48

标签: javascript selenium selenium-webdriver

我正在使用硒Web驱动程序进行测试。问题是,当我的URL更改时,getCurrentURL给我当前的URL。我为此使用driver.sleep方法。但是driver.sleep方法的问题是我必须传递固定的时间使其在URL更改后才能运行。有什么方法可以随着我的URL更改而运行(寻找不需要显式声明时间的其他睡眠方式)?

3 个答案:

答案 0 :(得分:1)

waituntil个模块

driver.wait(until.urlIs('expected url'));

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