当前位置:   article > 正文

关于python-selenium静默执行(linux系统):包含linux安装chrome、chromdriver_linux配置python和chromedriver

linux配置python和chromedriver

目录

一、代码实现在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

  1. from selenium import webdriver
  2. import sys
  3. def is_driver(no_ui=False):
  4. '''
  5. 1、判断是在什么环境下运行
  6. 2、no_ui win系统下默认为界面模式,无界面设为:True
  7. '''
  8. if 'linux' in sys.platform:
  9. option = webdriver.ChromeOptions()
  10. option.add_argument('headless') # 浏览器不提供可视化页面
  11. option.add_argument('no-sandbox') # 以最高权限运行
  12. option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确
  13. option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
  14. # option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小)
  15. driver = webdriver.Chrome(options=option)
  16. else:
  17. if no_ui:
  18. ''' win系统下无界面模式 '''
  19. option = webdriver.ChromeOptions()
  20. option.add_argument('headless') # 浏览器不提供可视化页面
  21. option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确
  22. driver = webdriver.Chrome(chrome_options=option)
  23. else:
  24. driver = webdriver.Chrome()
  25. driver.maximize_window() # 将浏览器最大化
  26. return driver
  27. if __name__ == '__main__':
  28. driver = is_driver()
  29. driver.get('https://www.baidu.com/')
  30. print('title:', driver.title)
  31. print('执行完毕:!!!')
  32. 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

  1. yum install Xvfb
  2. pip install pyvirtualdisplay
  3. 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. 1.命令提示符cmd,cd到本地计算机放置selenium-server-standalone-3.9.1.jar的文件夹
  2. 2.执行:
  3. java -jar selenium-server-standalone-3.9.1.jar -role node -port 5555 -hub http://xxx.xx.xx.x:4444/grid/register
  4. #备注:http://xxx.xx.xx.x:4444/grid/register 中x是hub的ip地址,一定要注意是ip,而不是0.0.0.0;即便你hub设置了0.0.0.0,只是表示你主机运行所以ip访问,port也可自己配置;
  5. 2.1.指定chromedriver.exe
  6. 全命令: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
  7. 2.2.指定firefox
  8. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/90151
推荐阅读
相关标签
  

闽ICP备14008679号