如何在使用Selenium启动网站时禁用自动播放

您所在的位置:网站首页 页面自动播放视频怎么设置 如何在使用Selenium启动网站时禁用自动播放

如何在使用Selenium启动网站时禁用自动播放

2024-07-16 10:52| 来源: 网络整理| 查看: 265

这真的要视情况而定,因为你的问题太笼统了,我假设有两种情况:

1)您正在谈论video标记的autoplay属性。将autoplay设置为false无济于事,因为有些视频无论如何都会播放。请参阅this case in fiddle.

一种可靠的方法是注入一个脚本来停止所有视频,如下所示:

代码语言:javascript复制import selenium from time import sleep from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("user-data-dir=other") driver = webdriver.Chrome(chrome_options=chrome_options) #driver.get("https://blog.synq.fm/html5-video-looping-autoplay-on-ios-and-android#gist48620519") driver.get('https://www.facebook.com/LaneigeHongKong/posts/1542227299146098%22') sleep(5) driver.execute_script('videos = document.querySelectorAll("video"); for(video of videos) {video.pause()}')

另外,由于视频已停止,您可能需要添加控件(播放、酒吧等),以防您想要稍后启动它们,在这种情况下,JavaScript位如下所示:

代码语言:javascript复制videos = document.querySelectorAll("video"); for(video of videos) {video.pause(); video.controls = true}

如果video标记位于影子根元素中,则上面的情况将不起作用,但是几乎没有任何通用的解决方案会起作用。在那里你将需要一个定制的aproache。

2)你在谈论一般的自动播放,不幸的是这里没有通用的解决方案,一种方法是将设置保存在你需要自动删除的网站上,我使用Chrome选项user-data-dir为了使用文件夹作为配置文件,我运行:

代码语言:javascript复制chrome_options = Options() chrome_options.add_argument("user-data-dir=selenium") driver = webdriver.Chrome(chrome_options=chrome_options) driver.get("www.google.com")

您可以在这里进行登录,以检查人类交互,或更改设置(例如:禁用自动播放)我这样做,然后是我现在需要的cookies,每次我启动Webdriver的时候,所有的东西都在那里。您还可以手动安装这些扩展,并在每次会话中使用它们。当我运行的时候,所有的cookie都在那里:

代码语言:javascript复制chrome_options = Options() chrome_options.add_argument("user-data-dir=selenium") driver = webdriver.Chrome(chrome_options=chrome_options) driver.get("www.google.com") #Now you can see the cookies, the settings, Extensions and the logins done in the previous session are present here

优点是你可以使用多个文件夹不同的设置和cookie,扩展,而不需要加载,卸载cookie,安装和卸载扩展,更改设置,通过代码更改登录,因此没有办法有程序中断的逻辑,等等,这也比必须通过代码完成所有这些更快。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3