selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
意思就是浏览器版本与驱动不匹配。linux系统需要在软件中心更新Firefox,不建议自己从火狐官 下安装包。
目前右键另存为的方式很多都是如下
然而,并木有用,右键是实现了,但无法按出v以及保存。原因是selenium自带的send_keys是在选中某个元素后,给该元素输入键盘上的按键,无法选中系统的弹窗,所以当右键菜单跳出来以后selenium就无能为力了。
针对该问题,目前主流的方法是安装python模拟键盘的库,例如windows的pypiwin32,linux的virtkey和PyUserInput。
Windows:
亲测python3.5 使用pip install pypiwin32 安装成功,
这里https://www.cnblogs.com/wumac/p/5994923.html 列出了一些按键的代码
Linux:
亲测Ubuntu64自带的python2.7.6使用 sudo apt-get install python-virtkey 安装成功https://www.howtoinstall.co/en/ubuntu/trusty/universe/python-virtkey/,virtkey仅支持python2.7,并能显示在pip list中;但是,python2.7.6安装requests会有问题, 错chardet无法卸载,需要更新python版本;而当我把python升级到2.7.13后,requests是装上了,但virtkey安装完毕后没显示在pip list中,也无法import,所以放弃了。下面列出了virtkey 的按键代码https://blog.csdn.net/zhouy1989/article/details/13997507
下面,我们采用了PyUserInput库,它集合了
- PyMouse, 专门模拟鼠标操作
- PyKeyboard,专门模拟键盘上的操作
安装方法: pip install PyUserInput (注意要Python2.7)
这里给出PyUserInput模块的使用方法 https://github.com/PyUserInput/PyUserInput
总结:
我们只是用selenium实现了右键,后面的操作由其他库来模拟键盘完成;windows相对方便一点,pypiwin32对python的各个版本兼容比较好,但是windows系统稳定性较差,需要留足sleep时间;linux比较麻烦,只能用python2.7,不然很多库装不上,
PyUserInput比较好用,linux系统稳定性好;建议在虚拟机上运行,不然,你就不能用电脑了,因为你的系统始终在模拟按键以及选中element,有虚拟机你就可以放心切出去做其他事了;最后, 考虑到 络问题,有时候会有timeoutexception,建议做一个retry。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫Selenium211385 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!