2013-07-25 23 views
0

我只需要幾個網址禁用javascript,即:硒 - 我可以禁用JavaScript只爲幾個網址?

browser.get('http://mydomain.com/page1') 
# some actions with JS off 
browser.get('http://mydomain.com/page2') 
# some actions with JS on 
browser.get('http://mydomain.com/page3') 
# some actions with JS on 
browser.get('http://mydomain.com/page4') 
# some actions with JS off 

我知道,我可以通過Firefox的配置文件,webdriver.Firefox()與JS關閉,但是這將適用於所有頁面。我認爲爲每個頁面創建新的webdriver.Firefox()實例並不是一個好主意。

解決此問題的最佳方法是什麼? TIA!

+0

「兩個基」的方法是否需要啓用/單個測試中禁用javascript?或者你有不同的測試每個網址? –

回答

0

將測試分爲兩大組。一個組運行JS禁用的所有測試,另一組運行JS啓用。

這樣,您只需支付兩次初始設置成本(而不是每次測試一次)。

或者,你可以組織你的JS,讓所有事情都通過一個全局符號(jQuery使用$)。

現在你需要兩個框架的實現。一個是正​​常的實現,另一個是模擬/不可操作的實現,在調用它的函數時根本不會執行任何操作。

然後,您可以使用browser.executeScript()將其中一個實現分配給全局符號。

有幾個缺點,雖然:

  1. 並非所有的框架將隨着這個方案發揮
  2. 你可能要改寫了大量的現有代碼,使這項工作
  3. 如果您將腳本附加到DOM節點,那麼如果它們保持對內部事物的引用,則可能繼續像以前一樣工作。

所以我建議嘗試:-)

相關問題