WebDriver 在找到时注册回调 [英] WebDriver registering a callback on found
本文介绍了WebDriver 在找到时注册回调的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我搜索这样的元素时:
When I search for an element like this:
driver.findElement(By.id("myId")).isDisplayed();
如果找到元素,我想运行一些代码(使用找到的 WebElement 我将它滚动到视口的中间).我想对 findElement() 的所有调用都这样做,而不必每次调用它时都手动复制代码.
I want to run some code if the element is found (using the found WebElement I will scroll it to the middle of the viewport). I want to do this for all calls to findElement() without having to manually duplicate the code every time I call it.
有没有办法做到这一点?
Is there some way of doing this?
推荐答案
你可以通过实现 WebDriverEventListener
.这是一个例子,
You can do such things by implementing WebDriverEventListener
. Here is an example,
public class WebDriverListener implements WebDriverEventListener {
private WebDriver webDriver;
public WebDriverListener(WebDriver webDriver) {
this.webDriver = webDriver;
}
public void afterFindBy(By findBy, WebElement element, WebDriver driver) {
System.out.println("Found element now what??");
//do whatever needs to be done after you find the element
}
....
}
这是如何使用
@Test
public void test() {
WebDriver driver = new FirefoxDriver();
EventFiringWebDriver efwd = new EventFiringWebDriver(driver);
WebDriverListener eventListener = new WebDriverListener(driver);
efwd.register(eventListener);
efwd.get("http://www.google.com");
WebElement element = efwd.findElement(By.name("q"));
efwd.quit();
}
这篇关于WebDriver 在找到时注册回调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文