2012-10-01 81 views
9

如何在使用Selenium遠程WebDriver時禁用加載flash對象。 如果我也爲普通webdriver獲得解決方案,這將會有所幫助。如何在selenium遠程webdriver中禁用Flash

因爲在大多數情況下,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配置文件將不起作用

謝謝你的幫助。

+0

你找到答案了嗎? –

+0

您一定要接受@TasawerKhan提供的答案。 – alecxe

回答

4

我在Linux上使用薄荷這個代碼,它的工作原理是小組討論:

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

儘管它已經回答的問題,但在不同的論壇...所以我將鞏固你...

我不知道,如果Flash對象由JavaScript加載....但是如果禁用JavaScript是問題然後...

永遠不要禁用JavaScript的Firefox驅動程序,萬一如果你想使用它被禁用嘗試使用HTMLUNITDRIVER,這是專門爲非JavaScript頁面。

原因是Firefox的驅動程序的重要組成部分是在JavaScript中執行和禁用將嚴重關切。

HtmlUnitDriver,另一方面對於自動化測試,最快,最好的辦法(splly對於沒有JS頁)

https://groups.google.com/forum/?fromgroups=#!topic/webdriver/daLOzCiU_h4%5B1-25%5D

+0

謝謝你的回答。 – Panshul

+0

謝謝你的回答。
1.我遇到過很多使用java腳本從url加載flash影片的頁面,所以爲了停止加載flash,我需要關閉java腳本。
2。使用HTMLunit我無法在不同的瀏覽器(firefox,chrome,IE)上測試頁面,因此我使用遠程Web驅動程序。 – Panshul

+0

歡迎:)。 HTMLUnitdriver本身是一個不同的瀏覽器,如FF,IE和Chrome,但在java中實現。這將給你的結果,但不準確。 _我知道這不是一個更好的解決方案,但是對於Firefox,您可以手動創建禁用Flash的配置文件(以便阻止閃存),然後重複使用同一個配置文件以用於多個遠程驅動程序實例 – Anuragh27crony

0

我有同樣的問題,需要爲Chrome解決。這是我如何得到它的工作:

ChromeOptions options = new ChromeOptions(); 
    options.addArguments("--disable-bundled-ppapi-flash"); 
    WebDriver webDriver = new org.openqa.selenium.chrome.ChromeDriver(options); 
相關問題