2015-06-19 113 views
6

我知道我可以使用Firefox配置文件禁用JavaScript。例如,請參閱Enable/disable javascript using Selenium WebDriverSelenium WebDriver(Firefox):動態禁用Javascript

但是,我有一種情況,我需要啓用JavaScript才能登錄到頁面,但是我希望在登錄後禁用JavaScript,以便當我執行page_source時,它返回DOM,就好像JavaScript沒有運行一樣。關鍵是登錄頁面需要JavaScript。是否可以動態控制Selenium WebDriver中的JavaScript是否打開或關閉?

回答

2

我建議不要動態禁用javascript,因爲webdriver的大多數功能都是用javascript編寫的,因此它有時可能會給出意想不到的結果。最好使用Firefox配置文件禁用它,但是我已經編寫了可以幫助您在運行時禁用它的代碼。

WebDriver driver = new FirefoxDriver(); 
driver.get("about:config"); 
Actions act = new Actions(driver); 
act.sendKeys(Keys.RETURN).sendKeys("javascript.enabled").perform(); 
Thread.sleep(1000); 
act.sendKeys(Keys.TAB).sendKeys(Keys.RETURN).sendKeys(Keys.F5).perform(); 

如果使用Selenium IDE,可以參考:http://thom.org.uk/2006/03/12/disabling-javascript-from-selenium/爲好。

相關問題