【发布时间】:2019-08-13 16:30:58
【问题描述】:
我正在使用Selenide 来测试一个网站。 我需要在每个页面上设置一些事件侦听器。 为此,我需要某种页面加载事件来告诉我 Selenium 何时加载新页面。
一个可能的(但丑陋的)解决方案是每 x 秒检查一次循环中的当前 url。
解决方案:
WebDriverRunner.addListener(new WebDriverEventListener() {
private String urlBeforeClick;
@Override
public void afterNavigateTo(String s, WebDriver webDriver) {
// code here
}
@Override
public void beforeClickOn(WebElement webElement, WebDriver webDriver) {
this.urlBeforeClick = webDriver.getCurrentUrl();
}
@Override
public void afterClickOn(WebElement webElement, WebDriver webDriver) {
// if the url is different after a click a new page was loaded.
if (!Objects.equals(this.urlBeforeClick, webDriver.getCurrentUrl()))
// code here
}
});
注意:我认为这不应该被标记为重复。
【问题讨论】:
-
不,我不想知道页面何时完成加载。我希望在加载页面时收到通知。
-
那么您可能想要使用
ready事件而不是onload事件。见stackoverflow.com/questions/3698200/…。 -
不,我想在 selenium 加载开始加载新页面时收到通知,而不是在特定页面完全加载时得到通知
标签: javascript java selenium webdriver selenide