• linux-3-搭建selenium环境运行脚本


    前言

    linux 下搭建有助于我们 jenkins 下进行持续集成测试,只需要写代码,提交代码,自动构建即可。

    但是linux也是需要搭建selenium环境的,比如chrome、chromedriver,那么这篇文章展开广深小龙搭建的过程。

    一、下载chrome与chromedriver

    1、下载chrome:

    yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

    2、查看chrome版本:google-chrome --version

    [root@iZbp19lugf22zbsubsf1y6Z ~]# google-chrome --version
    Google Chrome 81.0.4044.113 

    3、下载chromedriver,这里注意要在这里看对应的版本和下载对应的版本:http://npm.taobao.org/mirrors/chromedriver/

     4、例子:比如我安装的chrome版本为:Google Chrome 81.0.4044.113   那么chromedriver对应的版本也要是:81.0.404.xxx

    命令:wget http://npm.taobao.org/mirrors/chromedriver/81.0.4044.69/chromedriver_linux64.zip
    [root@iZbp19lugf22zbsubsf1y6Z ~]# wget http://npm.taobao.org/mirrors/chromedriver/81.0.4044.69/chromedriver_linux64.zip
    --2020-04-18 09:51:34--  http://npm.taobao.org/mirrors/chromedriver/81.0.4044.69/chromedriver_linux64.zip
    Resolving npm.taobao.org (npm.taobao.org)... 114.55.80.225
    Connecting to npm.taobao.org (npm.taobao.org)|114.55.80.225|:80... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://cdn.npm.taobao.org/dist/chromedriver/81.0.4044.69/chromedriver_linux64.zip [following]
    --2020-04-18 09:51:34--  https://cdn.npm.taobao.org/dist/chromedriver/81.0.4044.69/chromedriver_linux64.zip
    Resolving cdn.npm.taobao.org (cdn.npm.taobao.org)... 183.131.210.241, 183.131.210.250, 183.131.210.242, ...
    Connecting to cdn.npm.taobao.org (cdn.npm.taobao.org)|183.131.210.241|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 4956612 (4.7M) [application/zip]
    Saving to: ‘chromedriver_linux64.zip100%[====================================================================================================================================================================================================================================>] 4,956,612   --.-K/s   in 0.06s   
    
    2020-04-18 09:51:34 (77.6 MB/s) - ‘chromedriver_linux64.zip’ saved [4956612/4956612]
    
    [root@iZbp19lugf22zbsubsf1y6Z ~]# 

     5、解压zip包,注意如果没有zip要先安装:yum install -y zip

    解压:unzip chromedriver_linux64.zip

    [root@iZbp19lugf22zbsubsf1y6Z ~]# unzip chromedriver_linux64.zip 
    Archive:  chromedriver_linux64.zip
      inflating: chromedriver 

    6、移动至usr/bin/目录下:mv chromedriver /usr/bin/

    [root@iZbp19lugf22zbsubsf1y6Z ~]# mv chromedriver /usr/bin/

    7、查看chromedriver版本:chromedriver --version

    [root@iZbp19lugf22zbsubsf1y6Z ~]# chromedriver --version
    ChromeDriver 81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776})
    [root@iZbp19lugf22zbsubsf1y6Z ~]#

    二、运行selenium脚本尝试

    1、事先要安装好:①python   ②selenium (我已安装)

    Python 安装请参考:https://www.cnblogs.com/gsxl/p/11747736.html

    [root@iZbp19lugf22zbsubsf1y6Z ~]# pip3 install selenium
    Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/
    Requirement already satisfied: selenium in ./python36/lib/python3.6/site-packages (3.141.0)
    Requirement already satisfied: urllib3 in ./python36/lib/python3.6/site-packages (from selenium) (1.22)

    2、py脚本如下:

    注意无界面模式的 option 参数一定要设置好,否则各种报错。

    from selenium import webdriver
    import sys
    
    def is_driver(no_ui=False):
        ''' 1、判断是在什么环境下运行
            2、no_ui win系统下默认为界面模式,无界面设为:True
        '''
        if 'linux' in sys.platform:
            option = webdriver.ChromeOptions()
            option.add_argument('headless')                 # 浏览器不提供可视化页面
            option.add_argument('no-sandbox')               # 以最高权限运行
            option.add_argument('--start-maximized')        # 最大化运行(全屏窗口)设置元素定位比较准确
            option.add_argument('--disable-gpu')            # 谷歌文档提到需要加上这个属性来规避bug
            # option.add_argument('--window-size=1920,1080')  # 设置浏览器分辨率(窗口大小)
            driver = webdriver.Chrome(options=option)
        else:
            if no_ui:
                ''' win系统下无界面模式 '''
                option = webdriver.ChromeOptions()
                option.add_argument('headless')             # 浏览器不提供可视化页面
                option.add_argument('--start-maximized')    # 最大化运行(全屏窗口)设置元素定位比较准确
                driver = webdriver.Chrome(chrome_options=option)
            else:
                driver = webdriver.Chrome()
                driver.maximize_window()                    # 将浏览器最大化
        return driver
    
    driver = is_driver()
    driver.get('https://www.baidu.com/')
    print('title:', driver.title)
    print('执行完毕:!!!')
    driver.quit()

    3、运行:python3 xxx.py

    [root@iZbp19lugf22zbsubsf1y6Z ~]# python3 ~/t.py
    title: 百度一下,你就知道
    执行完毕:!!!
    [root@iZbp19lugf22zbsubsf1y6Z ~]# 

    最后完毕,值得注意的是有两个地方:①chrome 与驱动 chromedriver 版本匹配   ②selenium 无界面模式时传的 option 参数。

    试运行正常后,便可以与jenkins进行构建了,web的持续集成测试ok!

    请到QQ交流群一起学习:482713805 !!! 

  • 相关阅读:
    通过加载Xib文件来创建UITableViewCell造成复用数据混乱问题方案
    iOS开发过程中常见错误问题及解决方案
    iOS开发常用第三方库
    KVC和KVO的理解(底层实现原理)
    iOS面试必备-iOS基础知识
    iOS应用适配IPV6
    Runtime运行时的那点事儿
    iOS应用性能调优的25个建议和技巧
    iOS清除缓存功能开发
    微信浏览器跳转页面后再返回,如何恢复到跳转前的位置的问题。
  • 原文地址:https://www.cnblogs.com/gsxl/p/12725091.html
Copyright © 2020-2023  润新知