2012-10-01 2 views
9

Selenium Remote WebDriver를 사용할 때 플래시 객체로드를 어떻게 비활성화합니까? 정상적인 webdriver에 대한 해결책을 얻는다면 도움이 될 것입니다.Selenium 원격 웹 드라이버에서 플래시를 비활성화하는 방법

대부분의 경우 Flash 객체가 JavaScript 에 의해로드 되었기 때문에 webdriver와 원격 webdriver 모두에서 javascript를 비활성화하려했지만 작동하지 않습니다. 나는 또한 시도

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

:

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

위의 문장의 실행 후 : 내가 시도 원격 WebDriver를 들어

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

나는하여 자바 스크립트를 사용하지 않도록하려 원격 서버 표시

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

하지만 여전히 드라이버가로드하는 페이지에서 모든 자바 스크립트가 실행 중이며 플래시도로드 중입니다.

제발 도와주세요 : 1. 어떻게 플래시로드를 멈출 수 있습니다. 2. Internet Explorer, Firefox, Chrome에서 페이지를 테스트해야하므로 원격 드라이버에이 드라이버가 필요합니다. 따라서 forefox 프로필을로드하면 작동하지 않습니다.

감사합니다. 해제 자바 스크립트의 경우 이미 그래서 내가 당신을 위해 통합 것입니다 ... 질문하지만 다른 포럼에 대답 비록

+0

답변을 찾았습니까? –

+0

@TasawerKhan 님이 제공 한 답변을 수락해야합니다. – alecxe

답변

4

이 그룹 토론을 확인하세요 :

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

...

나는 플래시 객체가 자바 스크립트에 의해로드되어 있는지 확실하지 않습니다 ....하지만 문제가있는 경우 ...

사용하지 않으려는 경우 Firefox 용 Javascript를 사용 중지하지 마세요. 특히 자바 스크립트 페이지가 아닌 HTMLUNITDRIVER를 사용해보십시오.

이유는 Firefox 드라이버의 중요한 부분이 자바 스크립트로 구현되어 있으며 사용 중지하면 심각한 우려 사항이 있습니다. 반면에

HtmlUnitDriver은 (splly없는 JS와 페이지) 자동화 테스트를위한 가장 빠르고 가장 좋은 방법입니다

내가 리눅스 민트에이 코드를 사용하고 작동 https://groups.google.com/forum/?fromgroups=#!topic/webdriver/daLOzCiU_h4%5B1-25%5D

+0

답변 해 주셔서 감사합니다. – Panshul

+0

답변 해 주셔서 감사합니다.
1. URL에서 플래시 동영상을로드하기 위해 자바 스크립트를 사용하는 많은 페이지가 있습니다. 플래시로드를 중지하려면 자바 스크립트를 해제해야합니다.
2.HTMLunit을 사용하면 다른 브라우저 (firefox, chrome, IE)에서 페이지를 테스트 할 수 없습니다. 그 이유 때문에 원격 웹 드라이버를 사용하고 있습니다. – Panshul

+0

환영합니다. HTMLUnitdriver 자체는 FF, IE 및 Chrome과 같은 다른 브라우저이지만 자바로 구현됩니다.이 결과는 정확하지만 정확하지는 않습니다. _이게 더 나은 해결책은 아니지만 파이어 폭스의 경우 수동으로 플래시를 비활성화하여 플래시를 차단 한 다음 프로필을 재사용하여 여러 프로필에 동일한 프로필을 재사용 할 수 있습니다. – Anuragh27crony

0

저도 같은 문제를 겪고하고 크롬을 위해 해결해야 할 필요가 있었다. 이것은 내가 일하는 방법입니다 :

ChromeOptions options = new ChromeOptions(); 
    options.addArguments("--disable-bundled-ppapi-flash"); 
    WebDriver webDriver = new org.openqa.selenium.chrome.ChromeDriver(options); 
관련 문제