2012-10-29 37 views
0

我想暫停/恢復上的按鈕的按下我的webdriver測試用例執行的按webdriver的測試執行。我們如何可以暫停/恢復按鈕上

的路上我拿出是使用Thread類掛起和恢復方法。但是我想確保它不應該在webdriver輸入文本或其他東西時暫停。就好像它會這樣做,瀏覽器可能會失去焦點。所以我想確保element.sendKeys或element.click的原子執行。

請提出任何想法?

回答

1

我覺得這裏你最好的選擇是實現自己的同步和啓動/停止圍繞硒。實現這一目標的方法之一是保護每一個呼叫與顯示器和一個布爾標誌一個webdriver的API方法來指示其他一些情況下想中止測試執行:

private boolean suspend = false; 

private Object monitor = new Object(); 

你的每個API調用之前代碼可以看看如下:

synchronized (monitor) { 
    if (suspend) { 
     try { 
      monitor.wait(); 
     } catch (InterruptedException ex) { 
      // thrown if someonelse calls notify 
     } 
    } 
} 

如果要暫停測試執行,你需要有一個人(即另一個線程)執行以下代碼:

synchronized (monitor) { 
    suspend = true; 
} 

要再次繼續,則需要執行以下代碼:

synchronized (monitor) { 
    monitor.notifyAll(); 
} 

那只是一個很簡單的解決方案。有更復雜的同步風格,但這應該是足夠的。

2

只要運行在調試模式下進行測試。然後,您可以暫停整個JVM。這會導致暫停WebDriver。