2016-06-22 62 views
0

我正在使用硒驅動程序進行測試。我想放慢執行速度。
下面是示例代碼:如何減慢執行速度?

@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

其執行速度非常快,這樣我不能夠看到執行正確 – disha

+0

可以調試看到正確執行... thnaks –

回答

0

不再有任何的方式來控制硒webdriver的每個「臺階」的速度。在同一時間,有選項界面上的setSpeed()方法(在Java綁定;其他綁定對他們適當命名的對象類似的結構),但它已被廢棄很久很久以前。這背後的理論是,你不應該需要事先減慢WebDriver代碼的每一步。如果您需要等待應用程序中的某些事情發生,那麼您應該使用隱式或顯式等待例程。

+0

非常感謝你的解釋..但有時TextBox1中的值傳遞給TextBox2中..可能是由於快速執行..有任何解決方案,用於..? – disha

+0

@disha,用於textbox1的值傳遞給textbox2與執行速度無關。 –

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(); 
} 

的自動化測試(在我看來)的全部目的是使他們能夠在沒有用戶交互/沒有被查看的情況下在後臺運行。另外,如果你想在一定的時間內完成儘可能多的測試,速度和平行測試是必不可少的。如果您要查看正在執行的測試中,我覺得上面的方法將是一件好事,以確保你不破壞硒的性能,完成後查看執行,你將有完全的控制與視頻重播等

+0

這回答了我的用例,它是在我們接受它進入我們的迴歸測試體之前,對已經寫好的測試進行手動審查。但是,它似乎比在Selenium WebDriver中暫時設置一個簡單地說「以50%速度運行」的選項更方便。 –