回答您的问题:
如果可以迫使应用程序等待单击 :从技术上讲,的调用click()
由最终用户控制,该最终用户还是脚本/程序的所有者。同样,在功能上,您的脚本/程序无需等待,click()
但需要等待预期的WebElement 可 交互 (即, clickable )。与该用例相似,在自动化测试用例时,可能必须将快速移动的 WebDriver 实例与滞后的 Web Client 进行同步。为了实现这一目标, Selenium 为您提供了WebDriverWait类 , 该类 可以与ExpectedConditions类 一起使用 __。
ExpectedConditions类 使我们能够遵守许多条件。几个最广泛使用的 ExpectedConditions 如下:
单击之后,确定单击了html的哪个元素 :为此,您必须借助EventFiringWebDriver,它将注册一个EventHandler 实例,该实例将实现WebDriverEventListener
EventFiringWebDriver是任意WebDriver 实例的包装,该实例主要用于记录目的,支持注册WebDriverEventListener。
EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);
EventHandler handler = new EventHandler();
eventDriver.register(handler);
eventDriver.get("https://google.com");
System.out.println(eventDriver.getTitle());
public class EventHandler implements WebDriverEventListener
{
@Override
public void afterNavigateTo(String arg0, WebDriver arg1) {
System.out.println("Inside the afterNavigateTo to " + arg0);
}
@Override
public void beforeNavigateTo(String arg0, WebDriver arg1) {
System.out.println("Just before beforeNavigateTo " + arg0);
}
}
控制台输出:
Just before beforeNavigateTo https://google.com
Inside the afterNavigateTo to https://google.com
Google