使用 Selenium Webdriver (with Java) 测试没有 ID 的视频

Using Selenium Webdriver (with Java) to test a video without ID

我正在尝试从一开始就使用 pause/play/play 等标准操作来测试没有 ID 的视频(其为 webm 格式)。这是我目前发现的 http://roadtoautomation.blogspot.com.au/2014/04/road-to-automate-html5-video-with.html

所以只需在此处粘贴部分代码:

JavascriptExecutor js = (JavascriptExecutor) driver;

 //play video
 js.executeScript("document.getElementById(\"video\").play()");
 Thread.sleep(5000);

 //pause playing video 
 js.executeScript("document.getElementById(\"video\").pause()");

 //check video is paused
 System.out.println(js .executeScript("document.getElementById(\"video\").paused"));

很遗憾,我无法使用此方法,因为视频没有 ID。我尝试使用 document.getElementsByTagName 做类似的事情,但没有成功(go error document.getElementsByTagName(...).play is not a function)。有什么建议吗?

您不必使用 javascript 执行器来查找 video 元素。

selenium找到并传给执行者控制

例如,如果您只是通过标签名称找到它:

WebElement video = driver.findElement(By.tagName("video"));

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].play();", video);

为 Class 名称查找 HTML video 标签。然后就可以使用函数getElementsByClassName()了。这对我有用:

(JavascriptExecutor(driver))
    .executeScript("document.getElementsByClassName('Video Class Name')[0].click();");