java- Selenium
你好, 我最近正在使用 selenium-java 进行项目自动化。 我发现在很多代码中都在使用这种方法。
waitForAngularRequestsToFinish();
我不知道为什么在 main 函数中会有这个。 在下一个示例中是我的代码,因为我不知道在开始和结束时使用这种方法有什么好处。
此代码示例:
public void ActualizarEstadoDeFinalizacion(String caso) {
waitForAngularRequestsToFinish();
JavascriptExecutor js = (JavascriptExecutor) getDriver();
js.executeScript("window.scrollBy(850)");
WebElement htmlScrollProblemaDeCierre = findBy(String.format("//*[@title='%s']//ancestor::div[@class='oneWorkspaceTabWrapper']//span/span[contains(.,'Estado de finalización')]//following::a[1]/parent::div/parent::div/parent::Div/parent::div",caso));
htmlScrollProblemaDeCierre.click();
waitForAngularRequestsToFinish();
}
最佳答案
代码的作者创建了一个名为 waitForAngularRequestsToFinish()
的函数。
这是一种等待所有待处理请求加载的方法...
一般会用JavaScript来实现... 可以看paul-hammant's ngWebDriver .
如果你愿意,你可以自己实现:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("var injector = window.angular.element('body').injector(); var $http = injector.get('$http'); return ($http.pendingRequests.length === 0);")
在方法的开始和结束时使用它的好处是保证你来到的页面和你引导的页面是完全加载的。
希望对你有帮助!
关于java - waitForAngularRequestsToFinish()——有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54790745/