降低Selenium Webdriver的速度 [英] Decreasing the speed of Selenium Webdriver
问题描述
我有一个selenium集成测试,它启动浏览器并检查webstore是否有任何损坏的功能。然而,整个测试运行得太快并且在我甚至看不到哪个页面被执行之前完成。如何从代码中降低执行速度。目前我有以下文件实际启动测试。
I have an selenium integration test that launches browser and checks the webstore for any broken functionality. However the entire test runs too fast and finishes before I can even see which page is getting executed. How can I decrease the execution speed from my code. Currently I have following file that actually launches the test.
@Before
public void setUp() throws Exception {
urlProp = GenericUtils.loadProperties("url.properties");
this.BASE_URL = urlProp.getProperty("webstoreUrl");
xpathProp = GenericUtils.loadProperties("xpath.properties");
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@After
public void tearDown() {
driver.quit();
}
推荐答案
你可以玩 EventFiringWebDriver
。
WebDriver driver = new FirefoxDriver();
EventFiringWebDriver slowDriver = new EventFiringWebDriver(driver);
slowDriver.registerListener(new ListenerThatAddsPauses(5, TimeUnit.SECONDS));
你必须写你的班级 ListenerThatAddsPauses
这将扩展 AbstractEventFiringListener
。在 ListenerThatAddsPauses
中,您必须覆盖父类中的方法,例如添加所需的暂停。类似于:
You will have to write your class ListenerThatAddsPauses
which will extend AbstractEventFiringListener
. In ListenerThatAddsPauses
you will have to override methods from parent class and for example add needed pauses. Something like:
@Override
public void beforeClickOn(WebElement element, WebDriver driver) {
Thread.sleep(timeout);
}
这是一个很棒的示例
这篇关于降低Selenium Webdriver的速度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!