2013-07-13 3 views
1

비디오 (JUnit 사용) - 다음 웹 사이트의 Day01을 재생하려고합니다. http://www.itelearn.com/live-training/security-testing-live-training 비디오를 재생 한 후 비디오가 제대로 재생되고 있음을 증명하기 위해 스크린 샷을 찍습니다. Day01 비디오를 클릭하면 새로운 창에서 열립니다. 코드를 살펴보면 iFrame을 사용함을 알았습니다. 이 비디오 창을 닫을 수는 있지만이 비디오를 재생/일시 중지 할 수는 없습니다.Java로 Selenium WebDriver를 사용하여 비디오 재생

비디오를 닫으려면 코드를 사용했습니다. WebDriverWait wait = new WebDriverWait (driver, 20); wait.until (ExpectedConditions.visibilityOfElementLocated (By.xpath (xPath))). click();

새로운 테스트를 통해 저에게 도움을주십시오.

답변

2

그래서 iframe으로 전환 했습니까?

다음의 테스트되지 않은 Java 코드를 사용해보십시오. 여기 논리는 간단합니다. xpath 또는 css selector로 iframe 요소를 찾은 다음 전환 한 다음를 클릭하십시오. 그러나 플레이어를 자동화하는 것이 쉽고 안정적이지 않을 수도 있습니다. 가능한 경우 의견을 보내주십시오. 감사합니다. 셀레늄을 시작할 때

WebDriverWait wait = new WebDriverWait(driver, 20); 
WebElement playerIframe = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#sb-player iframe"))); 
driver.switchTo().frame(playerIframe); 

// make sure you have html5 video loaded, instead of flash 
// otherwise Selenium won't find a thing 
driver.findElement(By.cssSelector("svg.ytp-cued-icon")).click(); 

는 기본적으로 HTML5를로드하려면 this page 또는 부하 확장 HTML5 Video for YouTube를 참조하십시오.

+0

답장을 보내 주셔서 감사합니다. 이 코드를 시도했지만 작동하지 않습니다. 그 리턴 값은 줄 바꿈으로 인해 에러가 발생합니다. WebElement playerIframe = wait.until (ExpectedConditions.visibilityOfElementLocated (By.cssSelector ("# sb-player iframe"))). – user2467785

+0

예, 자바 환경이 없기 때문에 문법 오류가 발생했습니다. 확실하게 고칠 수 있습니다. 원래 게시물의 해당 줄을 복사하고 제거한 것을 잊어 버렸기 때문에 끝 ('click()')을 제거하십시오. –

+0

도와 줘서 고마워. 고마워. HTML5 동영상 플레이어를 다운로드하고이 코드를 사용해 보겠습니다. 그 사이에 나는 다음 코드를 시도했다. 이제 재생 버튼이 색상이 빨갛다는 것을 알 수 있습니다. 즉, 내 컨트롤/커서가 해당 비디오 위에 있음을 의미하지만 비디오를 재생하지 않고 클릭 만하면됩니다. WebElement location = driver.findElement (By.xpath (xPath)); // 멤버 영역 xpath를 가져옵니다. \t \t \t 작업 builder = new Actions (driver); \t \t \t builder.moveToElement (location) .build(); \t \t \t //builder.contextClick(); \t \t \t builder.contextClick(). perform(); \t \t \t waitTime (10000); – user2467785

1

JavaScriptExecutor를 사용해보세요. 다음 방법은 나를 위해 작동 :

import org.openqa.selenium.JavascriptExecutor; 

JavascriptExecutor js = (JavascriptExecutor) driver; 
js .executeScript("document.getElementById(\"video\").play()"); 

내가 https://www.w3.org/2010/05/video/mediaevents.html에서 비디오를 재생하고 진행 필드를 확인 할 수 있었다.

행운을 빈다.

관련 문제