有没有办法在Java的WebDriver中控制浏览器的速度



当我使用Selenium RC时,有一个方法setSpeed为:

selenium.setSpeed("500");

Selenium网络驱动程序中控制浏览器速度的方法是什么?

不再有任何

方法可以控制Selenium WebDriver中每个"步骤"的速度。曾经,Options接口上有一个setSpeed()方法(在 Java 绑定中;其他绑定在其适当命名的对象上具有类似的构造),但它很久很久以前就被弃用了。这背后的理论是,您不需要先验地减慢WebDriver代码的每一步。如果需要等待要自动化的应用程序中发生某些事情,则应使用隐式或显式等待例程。

没有直截了当的方法。但是您可以使用一个技巧,您可以覆盖 webdriver 的方法并引入显式睡眠以减慢您的测试速度,例如。重写 findElement 方法

public class _WebDriver extends FirefoxDriver {
@Override
public WebElement findElement(By by) {
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return by.findElement((SearchContext) this);
}
}

您可以使用任何语言的Thread.Sleep(500)(或等效语言)来运行 Webdriver。 这将导致线程暂停确切的毫秒数。

或者,您可以使用此处所述的显式隐式等待

  • 显式等待允许您定义ExpectedCondition。 Webdriver 将每 500 毫秒检查一次条件,直到它返回 true(之后执行将立即恢复)。

  • 隐式等待会导致 Web 驱动程序不断重试尝试在 DOM 中查找某些内容。 找到元素后,将立即恢复执行。

请注意,隐式和显式等待都不能保证 500 毫秒的暂停。

更好的可能是将Web驱动程序FluentWait类与ExpectCondition一起使用。示例可在此处找到:http://www.summa-tech.com/blog/2011/10/10/using-page-objects-with-selenium-and-web-driver-20/

最新更新