我知道我可以使用 Firefox 配置文件来禁用 JavaScript。例如,参见 Enable/disable javascript using Selenium WebDriver .
但是,我有一种情况,我需要启用 JavaScript 才能登录页面,但我希望在登录后禁用 JavaScript,这样当我执行 page_source
,它返回 DOM,就好像 JavaScript 没有运行一样。关键是登录页面需要 JavaScript。是否可以在 Selenium WebDriver 中动态控制 JavaScript 的开启或关闭?
最佳答案
我建议不要动态禁用 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/
关于javascript - Selenium 网络驱动程序(火狐): dynamically disable Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30945480/