使用 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();");
我正在尝试从一开始就使用 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();");