【问题标题】:How to handle HTML Audio element in Selenium如何在 Selenium 中处理 HTML 音频元素
【发布时间】:2019-04-30 03:13:24
【问题描述】:
我想在浏览器中点击音频元素的播放按钮
现在音频元素的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();
但是如何专门点击播放和音量按钮呢?
【问题讨论】:
标签:
selenium
selenium-webdriver
automation
automated-tests
【解决方案1】:
您可以调用 JavaScript 原生方法来播放音频:
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");