我尝试向ChromeOptions
标记autoplay-policy
- Document user activation is required
注入块自动播放视频以获得测试效果。
我有几次尝试。但没有人不工作。
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = Maps.newHashMap();
prefs.put("--autoplay-policy", "Document user activation is required.");
options.setExperimentalOption("prefs", prefs);
或者
options.setCapability("--autoplay-policy", "Document user activation is required.");
我正在使用pup-up菜单尝试使用网址chrome://flags/#autoplay-policy
来设置Document user activation
。但是当Selenium点击RELAUNCH NOW
来应用我的测试崩溃时。我需要在启动Chrome之前注入它。
我正在寻找在chromedriver
开始时屏蔽自动播放视频的机会。请帮我解决这个问题。谢谢。
答案 0 :(得分:0)
我遇到了同样的问题,无法通过原生选项“autoplay-policy”阻止自动播放视频。同时它不起作用,我使用chrome插件“禁用HTML5自动播放”启动Chrome。我附上了从Selenium API管理此插件的代码:
public class PluginHTML5Autoplay extends PluginChrome {
private final String fileName = "html5autoplay_0_6_2.crx";
private static final String PageSetup = "chrome-extension://efdhoaajjjgckpbkoglidkeendpkolai/options.html";
private static final String XPathSelect = "//select[@id='default-mode']";
@Override
public void addPluginToChrome(ChromeOptions options) throws Exception {
super.addPluginToChrome(options, this.fileName);
}
public static void disableAutoplay(WebDriver driver) {
driver.get(PageSetup);
new Select(driver.findElement(By.xpath(XPathSelect))).selectByVisibleText("Disable autoplay");
}
public void disableNothing(WebDriver driver) {
driver.get(PageSetup);
new Select(driver.findElement(By.xpath(XPathSelect))).selectByVisibleText("Disable nothing");
}
}
使用此插件启动Chrome时的默认选项是“禁用自动播放”。因此,您只需要管理插件,以防您需要激活自动播放。