9

使用 Selenium Remote WebDriver 时如何禁用 Flash 对象的加载。如果我也为普通的 webdriver 找到解决方案,那将会很有帮助。

由于在大多数情况下 Flash 对象是由 JavaScript 加载的,因此我尝试在 webdriver 和远程 webdriver 上禁用 javascript,但它不起作用。

我试图通过以下方式禁用 JavaScript:

WebDriver driver = new FirefoxDriver();
((DesiredCapabilities) driver.getCapabilities()).setJavascriptEnabled(false);

我也试过:

DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(false);
WebDriver driver = new FireFoxDriver(caps);

对于远程 WebDriver,我尝试过:

final DesiredCapabilities firefoxCapability = DesiredCapabilities.firefox();
firefoxCapability.setJavascriptEnabled(false);
new RemoteWebDriver(new URL("http://" + windowsIP + ":4444/wd/hub"), firefoxCapability);

执行上述语句后,远程服务器显示

Executing: [new session: <platform=ANY, javascriptEnabled=false, browserName=firefox, version=>] at URL:/session>

但仍然所有 Javascript 都在驱动程序加载的页面上执行,并且 Flash 也在加载。

请帮帮我: 1.如何阻止闪存加载。2. 在远程驱动上需要它,因为我需要在 IE、Firefox、Chrome 上测试页面。因此加载forefox配置文件将不起作用

感谢您的帮助。

4

3 回答 3

4

我在 Linux mint 上使用了这段代码,它可以工作:

FirefoxProfile profile= new FirefoxProfile();
profile.setPreference("plugin.state.flash", 0);
FirefoxDriver driver = new FirefoxDriver(profile);
于 2013-09-22T13:58:30.773 回答
0

虽然它已经回答了问题但在不同的论坛上......所以我会为你巩固......

我不确定 Flash 对象是否由 javascript 加载......但如果禁用 javascript 是问题,那么......

永远不要禁用 Firefox 驱动程序的 Javascript,如果你想使用它被禁用,请尝试使用 HTMLUNITDRIVER,它专门用于非 javascript 页面。

原因是 Firefox 驱动程序的重要部分是在 javascript 中实现的,禁用将有严重的问题。

另一方面,HtmlUnitDriver 是自动化测试的最快和最好的方法(对于没有 JS 的页面,splly)

请查看此小组讨论 https://groups.google.com/forum/?fromgroups=#!topic/webdriver/daLOzCiU_h4%5B1-25%5D

于 2012-10-03T11:04:39.753 回答
0

我有同样的问题,需要为 Chrome 解决它。这就是我让它工作的方式:

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-bundled-ppapi-flash");
    WebDriver webDriver = new org.openqa.selenium.chrome.ChromeDriver(options);
于 2015-08-09T19:55:46.543 回答