如何使用 Selenium (Java) 在浏览器中禁用 JavaScript?

Sar*_*ana 2 java firefox selenium selenium-chromedriver selenium-webdriver

在我的功能自动化中,我需要在浏览器中禁用 JavaScript 并运行流程。如何禁用 JavaScript?

为 Firefox 和 Chrome 尝试了 DesiredCapabilities。

DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, false)
Run Code Online (Sandbox Code Playgroud)

DesiredCapabilities dc = new DesiredCapabilities();
dc.setJavascriptEnabled(false);
Run Code Online (Sandbox Code Playgroud)

对于 Firefox,尝试过 1) 为 Firefox 设置配置文件

2) 添加附加组件 - noScript.xpi

3) profile.setPreference("javascript.enabled", false);

4)通过用户界面,尝试将“about:config”中的标志“javascript.enabled”更改为false。在这里,打开 Firefox 并给“about:config”一个警告——“这可能会使你的保修失效!”。有一个按钮——“我会小心的,我保证!” 带有 id - 警告按钮。应单击此按钮以继续进行。要单击此按钮,请使用 driver.findElement(By.id("warningButton")).click(); 但它不起作用。

以上所有选项都不起作用。任何建议都会有所帮助。

Ata*_*dow 5

我不懂 Java,但也许 Python 3 的解决方案会对您有所帮助。

在 Python 中,您可以使用 Options() 而不是 FirefoxProfile() 来停用 JavaScript:

from selenium.webdriver.firefox.options import Options
options = Options()
options.preferences.update({"javascript.enabled": False})
driver = webdriver.Firefox(options=options)
driver.get('about:config')
Run Code Online (Sandbox Code Playgroud)

也许Java这个:

FirefoxOptions options = new FirefoxOptions();
options.preferences.update({"javascript.enabled": False});
WebDriver driver = new FirefoxDriver(options);
driver.get('about:config')
Run Code Online (Sandbox Code Playgroud)