近几个版本的chrome因为安全性问题,已不再支持自动播放adobe flash player,页面打开后,会出现以下画面:
然后必须手动点击启动,出现下面画面:
我试了好几个办法都不行:
1、用selenium里面的alert,但窗口2虽然是弹出窗口,却不算警告窗口,无法定位;
2、切换frame,可是新窗口也不算新的frame,无法切换;
3、
"profile.default_content_setting_values.plugins": 1,
"profile.content_settings.plugin_whitelist.adobe-flash-player": 1,
"profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-
player": 1,
"PluginsAllowedForUrls": "https://url"
}
options.add_experimental_option("prefs",prefs)
4、在地址栏输入“chrome://flags/#run-all-flash-in-allow-mode”等一系列操作;
综上,可以说chrome在新版本中做得比较绝,基本断了所有的路!
既然自动不行,那我就手动,用pyuserinput里的pymouse来点击第二张图片里的“允许”即可!
tip1:装pyuserinput比较麻烦,因为这个库是基于pyHook的,所以必须先装pyHook,而pyHook不支持pip install,所以必须先到这个网址根据自己的系统下载对应的版本:https://www.lfd.uci.edu/~gohlke/pythonlibs/
比如我是3.6.6的python和windows 64位,所以就下了“pyHook‑1.5.1‑cp36‑cp36m‑win_amd64.whl”
下载下来后,在cmd中输入 pip install C:\Users\Administrator\Desktop\python\pyHook-1.5.1-cp36-cp36m-win_amd64.whl安装;
安装成功后,再pip install pyuserinput即可
tip2:pymouse里用
m = PyMouse()
print(m.position())
来定位鼠标的坐标
全部代码如下:
from pymouse import PyMouse
import os
import time
optons = webdriver.ChromeOptions()
optons.add_argument('disable-infobars') #chrome基础设置,使不在页面上显示“chrome正受到自动测试软件的控制”
browser = webdriver.Chrome(chrome_options=optons)
url = "http://10.1.8.100:8089/zhyyt/gateway/homePage"
browser.get(url)
time.sleep(1)
browser.fullscreen_window() #全屏
browser.find_element_by_xpath('//*[@src="http://10.1.8.100:8089/zhyyt/commonJS/modules/gateway/ckplayer/ckplayer.swf"]').click() #这步就是找到“点击即可启动Adobe Flash Player”的位置并点击
time.sleep(3)
m = PyMouse()
m.click(246, 94) # 移动并且在xy位置点击
for i in range(1, 10):
time.sleep(900)
browser.refresh()
print('第{}次刷新'.format(i))
更多推荐
Python:关于chrome已不再支持adobe flash player自动播放的解决办法
发布评论