发布于2020-03-18 11:34 阅读(7002) 评论(0) 点赞(6) 收藏(5)
用selenium在chrome浏览器中自动化播放html5中的视频时,遇到如下报错:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD
Python代码如下:
- #在selenium的实现中options会被转为KEY="goog:chromeOptions"的capability
-
- browser=webdriver.Chrome(executable_path=chrome_driver_path,options=options,
-
- desired_capabilities=caps)
-
-
- #请求html5视频测试页面
-
- browser.get(html5_url)
-
- time.sleep(3)
-
-
- #定位视频播放控件
-
- video=browser.find_element_by_xpath("/html/body/video")
-
-
-
- #播放视频
-
- video_play=browser.execute_script("returnarguments[0].play()",video)
-
- print(f'video_play:{video_play}')
-
- time.sleep(5)
从网上得知:
Chrome的autoplay政策在2018年4月做了更改,在页面没有产生用户交互时时不能进行自动播放的
所以解决方案是:
先执行用户点击行为再进行播放
改进后的代码如下:
- #在selenium的实现中options会被转为KEY="goog:chromeOptions"的capability
-
- browser=webdriver.Chrome(executable_path=chrome_driver_path,options=options,
-
-
- #请求html5视频测试页面
-
- browser.get(html5_url)
-
- time.sleep(3)
-
-
- #定位视频播放控件
-
- video=browser.find_element_by_xpath("/html/body/video")
-
-
- #获得视频的URL
-
- video_url=browser.execute_script("returnarguments[0].currentSrc",video)
-
- print(f'video_url:{video_url}')
-
-
- #只是获取一下视频控件的属性,不算互动
-
- p_width=video.get_property('width')
-
- print(p_width)
-
- #需要click一下才行,也可以其它的动作,可以自行实验
-
- video.click()
-
- #播放视频并停留一段时间
-
- video_play=browser.execute_script("returnarguments[0].play()",video)
-
- print(f'video_play:{video_play}')
-
- time.sleep(5)
-
-
- #暂停视频
-
- #video.click()
-
- video_pause=browser.execute_script("returnarguments[0].pause()",video)
-
- print(f'video_pause:{video_pause}')
- time.sleep(3)
本文参考了:https://www.cnblogs.com/lcidy/p/10039592.html
原文链接:https://blog.csdn.net/boweiqiang/article/details/104915472
作者:dfd323
链接:https://www.pythonheidong.com/blog/article/265376/05b8a9d3e3d8b1790a8f/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!