我正在使用selenium web-driver进行测试。我想减慢执行速度 以下是示例代码:
@Parameters({ "provider_name", "branch", "address", "clientId", "website", "UserName", "Password", "Dpid" })
public void addDematAccount(String provider_name, String branch, String address, String clientId, String website,
String UserName, String Password, String Dpid) {
driver.findElement(By.xpath("//a[contains(@href, '#/app/DematAccount/Add')]")).click();
setParameter(provider_name, branch, address, clientId, website, UserName, Password, Dpid);
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
我使用了driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
和Thread.sleep(2000);
但没有帮助
答案 0 :(得分:1)
如果你想查看它,它太快我会认为你可能记录你正在执行的测试,然后查看它?
见这里:http://www.seleniummonster.com/boost-up-your-selenium-tests-with-video-recording-capability/
在这里:http://unmesh.me/2012/01/13/recording-screencast-of-selenium-tests-in-java/
以下是上述链接中的一些示例
public void startRecording() throws Exception
{
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
this.screenRecorder = new ScreenRecorder(gc,
new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI),
new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
CompressorNameKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,DepthKey, 24, FrameRateKey, Rational.valueOf(15),QualityKey, 1.0f,KeyFrameIntervalKey, 15 * 60),new Format(MediaTypeKey,MediaType.VIDEO, EncodingKey, "black",FrameRateKey, Rational.valueOf(30)),null);
this.screenRecorder.start();
}
public void stopRecording() throws Exception
{
this.screenRecorder.stop();
}
自动化测试的全部目的(在我看来)是这样的,它们可以在后台运行,无需用户交互/无需查看。此外,如果您想在一定的时间内进行尽可能多的测试,并且平行测试是必不可少的。如果你想查看你正在执行的测试,我认为上面的方法可以确保你不破坏Selenium的性能并在完成时查看执行,你将完全控制视频重放等。
答案 1 :(得分:0)
在Selenium WebDriver中,没有任何方法可以控制每个“步骤”的速度。有一次,在Options接口上有一个setSpeed()方法(在Java绑定中;其他绑定在其适当命名的对象上有类似的构造),但很久以前就被弃用了。这背后的理论是,您不应该先验地减慢WebDriver代码的每一步。如果您需要在应用程序中等待某些事情发生自动化,那么您应该使用隐式或显式等待例程。
答案 2 :(得分:0)
如果你真的想慢慢地或者一步一步地执行你的程序,你可以尝试以下方法: