关于python-selenium静默执行(linux系统):包含linux安装chrome、chromdriver

目录

一、代码实现在windows下有界面执行,在linux下无界面执行

二、在linux环境下安装chrome、chromedriver、selenium

2.1 安装chrome

2.2 安装chromedriver

2.3 安装selenium

三、代码Retry机制的实现

四、jenkins部署

4.1 安装插件步骤

4.2 配置selenium grid hub


备注:最好的执行是jenkins+selenium grid插件,目前还不清楚jenkins的grid node如何配置……后续有时间再继续!!!

木文档主要记录关于web自动化python脚本在linux的无界面环境下的执行。但一般函数尽量不要静默执行,自测静默执行用例的失败率会提高,目前没有寻找到解决方式。

一、代码实现在windows下有界面执行,在linux下无界面执行

以下系简单的sample:

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


if __name__ == '__main__':

    driver = is_driver()
    driver.get('https://www.baidu.com/')
    print('title:', driver.title)
    print('执行完毕:!!!')
    driver.quit()

二、在linux环境下安装chrome、chromedriver、selenium

2.1 安装chrome

远程连接linux,mkdir创建一个目录,下载chrome;安装脚本会自动下载、安装chrome(合适的版本),并且目前两个系统中,所缺少的依赖,都会被安装

wget https://intoli.com/install-google-chrome.sh

然后授予可执行权限

chmod 755 ./install-google-chrome.sh

执行脚本

./install-google-chrome.sh

测试安装结果

google-chrome-stable --no-sandbox --headless --disable-gpu --screenshot https://www.baidu.com/

如果出现.表示安装成功!

查看linux 安装的谷歌浏览器版本

google-chrome --version

2.2 安装chromedriver

安装chromedriver一定要注意与chrome的大版本对应

在win上浏览器中访问https://npm.taobao.org/mirrors/chromedriver中找到对应版本的chromedriver,进入对应版本,复制下载链接;

wget https://npm.taobao.org/mirrors/chromedriver/75.0.3770.90/chromedriver_linux64.zip

解压后,将chromedriver复制到:usr/bin

cp chromedriver /usr/bin

修改其权限

chmod +x chromedriver

2.3 安装selenium

yum install Xvfb
pip install pyvirtualdisplay
pip install selenium

安装完成之后,可以使用最上面第一点的代码运行,测试环境是否ok!

三、代码Retry机制的实现

python unittest 失败用例重跑实现方式示例_冷凝娇的博客-CSDN博客_unittest用例失败重跑

四、jenkins部署

一般项目的部署配置,这里就用不着讲述了,下面的内容记录一下关于selenium grid+jenkins实现分布式构建的部署(备注:目前可以实现hub部署;但是node的部署还没走通,先记录一部分,后续有时间研究通了再记录。)

webUI实现分布式执行,jenkins提供了插件支撑,下载selenium插件

Selenium

4.1 安装插件步骤

jenkins进入:系统管理-插件管理-高级,上传,重启jenkins即可。【jenkins需要管理员账号】

4.2 配置selenium grid hub

重启后,这样selenium grid hub 已经启动,首页会有个selenium grid菜单,如图:

点击Selenium Grid,进入配置信息,此时,服务器上的分布式hub已启动,可以用于每一个node的连接,实现hub控制node执行任务(目前node还配置不来,但是有暂行方式)

没有用jenkins配置node,可以在操作pc上执行(前提:本地执行机包含对应jar包):

1.命令提示符cmd,cd到本地计算机放置selenium-server-standalone-3.9.1.jar的文件夹
2.执行:
java -jar selenium-server-standalone-3.9.1.jar -role node -port 5555 -hub http://xxx.xx.xx.x:4444/grid/register 
#备注:http://xxx.xx.xx.x:4444/grid/register 中x是hub的ip地址,一定要注意是ip,而不是0.0.0.0;即便你hub设置了0.0.0.0,只是表示你主机运行所以ip访问,port也可自己配置;
2.1.指定chromedriver.exe
全命令:java -Dwebdriver.chrome.driver="D:\env\selenium-grid\chromedriver.exe" -jar selenium-server-standalone-3.9.1.jar -role node -hub http://xxx.xx.xx.x:4444/grid/register
2.2.指定firefox
java -jar selenium-server-standalone-3.9.1.jar -role node -port 5555 -hub http://192.168.0.245:4444/grid/register -maxSession 5 -browser browserName=firefox,seleniumProtocol=WebDriver,maxInstances=5,platform=WINDOWS,version=83.0

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值