2015-06-19 21 views
6

Wiem, że mogę używać profili Firefoksa do wyłączania JavaScript. Na przykład zobacz Enable/disable javascript using Selenium WebDriver.Selenium WebDriver (Firefox): dynamicznie wyłącza JavaScript

Mam jednak przypadek, w którym potrzebuję JavaScript do włączenia, aby logować się na stronie, ale potem chcę, aby JavaScript był wyłączony po zalogowaniu, więc gdy wykonam page_source, zwraca DOM, tak jakby JavaScript nie działał. Kluczem jest to, że strona logowania wymaga JavaScript. Czy możliwe jest dynamiczne kontrolowanie, czy JavaScript jest włączony lub wyłączony w Selenium WebDriver?

Odpowiedz

2

Sugeruję, aby nie wyłączać dynamicznie javascript, ponieważ większość funkcji webdrivera jest napisana w javascript, więc czasami może powodować nieoczekiwane rezultaty. Lepiej używać profili Firefoksa, aby go wyłączyć, ale napisałem kod, który może pomóc ci go wyłączyć podczas pracy.

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

przypadku korzystania Selenium IDE, można odwołać: http://thom.org.uk/2006/03/12/disabling-javascript-from-selenium/ również.

Powiązane problemy