【问题标题】:Selenium WebDriver (Firefox): dynamically disable JavascriptSelenium WebDriver (Firefox):动态禁用 Javascript
【发布时间】:2015-09-05 20:52:36
【问题描述】:
我知道我可以使用 Firefox 配置文件来禁用 JavaScript。例如,请参阅Enable/disable javascript using Selenium WebDriver。
但是,我有一种情况,我需要启用 JavaScript 才能登录页面,但我希望在登录后禁用 JavaScript,这样当我执行 page_source 时,它返回 DOM,就好像 JavaScript 没有运行一样。关键是登录页面需要JavaScript。是否可以在 Selenium WebDriver 中动态控制 JavaScript 是打开还是关闭?
【问题讨论】:
标签:
javascript
firefox
selenium
【解决方案1】:
我建议不要动态禁用 javascript,因为 webdriver 的大部分功能都是用 javascript 编写的,因此有时可能会产生意想不到的结果。最好使用 Firefox Profiles 来禁用它,但我已经编写了可以帮助您在运行时禁用它的代码。
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/。