• 在Centos7下安装Python+Selenium+Firefox学习环境


    Selenium 一自动化测试工具。它支持 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。

    所以呢,你要用Selenium你必须得先有个浏览器(大多数人没说这点,略坑!),无论是Chrome也好,Firefox也好,你必须得有一个。

    安装完浏览器了,抱着愉快的心情用pip3安装了Selenium,在Pyhton交互模式中直接导入Webdriver,创建Webdriver对象报如下错误:

    1
    No such file or directory: 'geckodriver'

    这上什么鬼?原来还需要安装浏览器的驱动文件。。。。。。。,下载页面如下,

    1
    https://github.com/SeleniumHQ/selenium/blob/master/py/docs/source/index.rst

    记得要下载对应的驱动,Chrome不能用Firefox,Firefox也不能用Chrome的,如果驱动版本错了,会报无法执行的错误,如下

    1 OSError: [Errno 8] Exec format error

    为何不弄一个所有驱动在一起的?搞不明白。

    将下载的驱动文件解压到/usr/bin,或/usr/local/bin下面,也就你的环境变量里在, 如何你直接修改PATH,我认为也是可以的,只要能找到就好了。

    到这了,感觉应该可以了吧,不行的,创建对象是没问题了,但是一访问URL,又报错了。。。。。

    1
    geckodriver.log Error: GDK_BACKEND does not match available displays

    从geckodriver.log中看到的报错信息,需要一个显示,本来想命令行用,但是却提示需要一个匹配的显示。经过去谷歌搜索得到,需要创建虚拟的显示器。

    安装如下软件来创建:

    yum install Xvfb libXfont xorg-x11-fonts*
    pip3 install  pyvirtualdisplay

    跳出这些坑,总算是可以正常使用了,测试代码如下:

    复制代码
    1 from selenium import webdriver  
    2 from pyvirtualdisplay import Display  
    3   
    4   
    5 display = Display(visible=0, size=(800,600))  
    6 display.start()  
    7 driver = webdriver.Firefox()  
    8 driver.get("http://www.baidu.com")  
    9 print driver.page_source  
    复制代码

    selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities

    升级火狐浏览器与selenlum版本一致

      

  • 相关阅读:
    HDU6768 The Oculus(Hash)
    HDU6672 Lead of Wisdom(爆搜)
    外一章
    深度学习笔记一
    ACM International Collegiate Programming Contest, Arab Collegiate Programming Contest 2013
    python局部变量&全局变量
    每日日报
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/7532988.html
Copyright © 2020-2023  润新知