selenium - 如何在 Selenium 中处理 HTML Audio 元素

标签 selenium selenium-webdriver automation automated-tests

我想点击浏览器中音频元素的播放按钮

enter image description here

现在音频元素的 html 标签是:

<audio autoplay="true" controls="" controlslist="nodownload" id="audioElement" style="visibility: visible;" src="file.wav">
            <source type="audio/x-wav" src="">
</audio>

使用 Selenium,我可以使用以下方法单击音频元素:
driver.findElement(By.id("audioElement")).click();

但是我如何专门点击播放和音量按钮?

最佳答案

您可以调用 JavaScript native 方法来播放音频:

JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.querySelector('#audioElement').play();");

或者您可以设置音量值:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.querySelector('#audioElement').volume = 0.3;");

静音:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.querySelector('#audioElement').muted = true;");

您可以查看 list of all audio properties and methods

更新

要获取当前状态(暂停、静音、音量级别...):
jse.executeScript("return document.querySelector('#audioElement').muted");
jse.executeScript("return document.querySelector('#audioElement').paused");
jse.executeScript("return document.querySelector('#audioElement').volume");

关于selenium - 如何在 Selenium 中处理 HTML Audio 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53515607/

相关文章:

python - 使用 Selenium/Python/Nose 时浏览器实例化两次

python - 如何使用 Selenium 测量页面下载时间

ruby-on-rails - 使用 Rails 4.x 安装 RSpec、Capybara 和 Selenium Webdriver

javascript - Selenium 网络驱动程序 : How to display values in console (Javascript)

python - Docker Selenium : selenium. common.exceptions.WebDriverException : Message: Service chromedriver unexpectedly exited. 状态代码为:127

java - Jgit - 获取分支的所有提交

.net - 如何将输入发送到控制台,就像用户正在打字一样?

selenium - 使用 xpath 识别元素的困难

java - 我可以扩展 WebElement 的 .click 方法吗?

java - 外部文件中的系统属性?