如何在selenium远程webdriver中禁用Flash

时间:2012-10-01 15:33:30

标签: selenium selenium-rc selenium-webdriver

使用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配置文件将无法正常工作

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

我在Linux mint上使用了这个代码,它起作用了:

FirefoxProfile profile= new FirefoxProfile();
profile.setPreference("plugin.state.flash", 0);
FirefoxDriver driver = new FirefoxDriver(profile);

答案 1 :(得分:0)

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

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

永远不要禁用Javascript for Firefox驱动程序,如果您想要将其禁用,请尝试使用专门针对非JavaScript页面的HTMLUNITDRIVER。

原因是firefox驱动程序的重要部分是在javascript中实现的,禁用会引起严重关注。

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

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

答案 2 :(得分:0)

我遇到了同样的问题,需要为Chrome解决这个问题。这就是我开始工作的方式:

$total_pages = ceil($count / $records_per_page);