我正在开发一个java应用程序来帮助构建selenium测试,我想知道是否可以强制应用程序等待点击,然后点击后确定点击了html的哪个元素
问候
答案 0 :(得分:1)
回答你的问题:
如果可以强制应用程序等待单击:从技术上讲,click()
的调用由最终用户控制,最终用户也是脚本/程序的所有者。在功能上,您的脚本/程序无需等待click()
,但需要等待预期的 WebElement 可交互(即可点击 )。与自动化测试用例时的用例类似,您可能必须将快速移动的 WebDriver 实例与滞后的 Web客户端同步。要实现 Selenium ,您可以使用WebDriverWait 类,它可以与ExpectedConditions 类结合使用。
ExpectedConditions Class 使我们能够遵守众多条件。一些最广泛使用的 ExpectedConditions 如下:
之后点击确定点击了html的哪个元素:为了解决这个问题,你必须得到EventFiringWebDriver的帮助,这将注册一个 EventHandler 的实例。将实施WebDriverEventListener
EventFiringWebDriver是任意 WebDriver 实例的包装器,它支持注册WebDriverEventListener,主要用于日志记录。
EventFiringWebDriver 程序的示例:
EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver);
EventHandler handler = new EventHandler();
eventDriver.register(handler);
eventDriver.get("https://google.com");
System.out.println(eventDriver.getTitle());
EventHandler 类的示例:
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