zoukankan      html  css  js  c++  java
  • linux上使用chrome自动化测试(无界面)

    selenium自动化测试主要是用于有图形界面的系统上,对于无图形界面的情况可以通过以下方法来实现

    服务器信息

    [root@spider01 ~]# hostnamectl
    Static hostname: spider01
    Icon name: computer-vm
    Chassis: vm
    Machine ID: 1c4029c4e7fd42498e25bb75101f85b6
    Boot ID: f5a67454b94b454fae3d75ef1ccab69f
    Virtualization: kvm
    Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
    Kernel: Linux 3.10.0-514.6.2.el7.x86_64
    Architecture: x86-64

    安装Chromeium:

    ## 安装yum源
    [root@spider01 ~]# sudo yum install -y epel-release
    ## 安装Chrome
    [root@spider01 ~]# yum install -y chromium

    ChromeDriver驱动 可以通过https://sites.google.com/a/chromium.org/chromedriver/downloads进行下载,下载完成后放在/usr/bin/目录下:

    完成结果如下:

    [root@spider01 ~]# ll /usr/bin/ | grep chrom
    -rwxrwxrwx. 1 root root 7500280 11月 29 17:32 chromedriver
    lrwxrwxrwx. 1 root root 47 11月 30 09:35 chromium-browser -> /usr/lib64/chromium-browser/chromium-browser.sh

    安装XVFB:

    [root@spider01 ~]# yum install Xvfb -y
    [root@spider01 ~]# yum install xorg-x11-fonts* -y
    新建在/usr/bin/ 一个名叫 xvfb-chromium 的文件写入以下内容:


    [root@spider01 ~]# cat /usr/bin/xvfb-chromium
    #!/bin/bash

    _kill_procs() {
    kill -TERM $chromium
    wait $chromium
    kill -TERM $xvfb
    }

    # Setup a trap to catch SIGTERM and relay it to child processes
    trap _kill_procs SIGTERM

    XVFB_WHD=${XVFB_WHD:-1280x720x16}

    # Start Xvfb
    Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
    xvfb=$!

    export DISPLAY=:99

    chromium --no-sandbox --disable-gpu$@ &
    chromium=$!

    wait $chromium
    wait $xvfb

    更改软连接

    ## 更改Chrome启动的软连接

    [root@spider01 ~]# ln -s /usr/lib64/chromium-browser/chromium-browser.sh /usr/bin/chromium


    [root@spider01 ~]# rm -rf /usr/bin/chromium-browser

    [root@spider01 ~]# ln -s /usr/bin/xvfb-chromium /usr/bin/chromium-browser

    [root@spider01 ~]# ln -s /usr/bin/xvfb-chromium /usr/bin/google-chrome

    [root@spider01 ~]# ll /usr/bin/ | grep chrom*
    -rwxrwxrwx. 1 root root 7500280 11月 29 17:32 chromedriver
    lrwxrwxrwx. 1 root root 47 11月 30 09:47 chromium -> /usr/lib64/chromium-browser/chromium-browser.sh
    lrwxrwxrwx. 1 root root 22 11月 30 09:48 chromium-browser -> /usr/bin/xvfb-chromium
    -rwxr-xr-x. 1 root root 73848 12月 7 2016 chronyc
    lrwxrwxrwx. 1 root root 22 11月 30 09:48 google-chrome -> /usr/bin/xvfb-chromium
    -rwxrwxrwx. 1 root root 387 11月 29 18:16 xvfb-chromium

    测试是否能够正常使用
    >>> from selenium import webdriver
    >>> driver = webdriver.Chrome()
    >>> driver.get("http://www.baidu.com")
    >>> driver.find_element_by_xpath("./*//input[@id='kw']").send_keys("测试测试")
    >>> driver.find_element_by_xpath("./*//input[@id='su']").click()
    >>> driver.page_source

  • 相关阅读:
    高级数据结构(一)----并查集
    分享复杂的线性动态规划问题(一)
    分享利用微信公众号做淘宝客返利机器人系统的3个技巧
    淘宝京东拼多多三合一cms源码怎么搭建优惠券网站
    微信公众号怎么查京东优惠券之3步搭建自己的找券机器人
    【职场提示】什么时间提出涨薪资更合适?
    项目管理之Git
    快速排序,数组去重
    信息安全风险治理——制度与标准篇
    浅谈漏洞管理实践
  • 原文地址:https://www.cnblogs.com/niansi/p/8094773.html
Copyright © 2011-2022 走看看