Selenium----基于Docker在Linux环境下执行Selenium自动化脚本

【原文链接】Selenium----基于Docker在Linux环境下执行Selenium自动化脚本

(1)首先参考 【Selenium----Selenium环境安装及打开浏览器实例 在Windows上配置好Selenium环境

(2)然后打开 百度,查找“百度一下”的元素id,如下

(3)编写如下selenium自动化脚本,采用不打开浏览器的方式

from selenium import webdriver
from selenium.webdriver.common.by import By

driver_options = webdriver.ChromeOptions()
driver_options.add_argument('--headless')
driver_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=driver_options)
driver.get(url="https://www.baidu.com/")
driver.implicitly_wait(5)
elem=driver.find_element(By.ID,"su")
print(elem.get_attribute("value"))

(4)执行结果如下,可以看到将“百度一下”文本获取到并打印出来了

(5)下面去Linux环境去执行这一段脚本,通过 【Selenium----Selenium环境安装及打开浏览器实例 可知执行selenium脚本,需要安装浏览器的driver,linux平常使用中绝大多数情况下都是命令行方式,当然命令行方式也是可以安装web的driver的,但是如果直接在linux上安装driver,然后调试脚本执行,会磕磕绊绊碰到各种各样的问题,这里就直接采用docker的方式,直接使用开源 selenium/standalone-chrome 镜像,使用远端服务执行的方式,这样就可以规避搭建安装selenium执行环境中的各种错综复杂的问题了

(6)Linux 环境若尚未安装Docker,可参考 CentOS系统安装Docker Engine 首先安装Docker

(7)然后执行如下命令启动selenium执行服务端docker容器

docker run -d --name selenium-standalone-chrome -h selenium-standalone-chrome --memory 1g --memory-swap -1 -p 4444:4444 selenium/standalone-chrome

(8)启动后查看docker,如下启动成功,并将内部的4444端口开放出来

[root@honghua-centos-01 demo]# docker ps|grep selenium
24317b00e85f   selenium/standalone-chrome           "/opt/bin/entry_poin…"   34 minutes ago   Up 34 minutes           0.0.0.0:4444->4444/tcp, :::4444->4444/tcp, 5900/tcp   selenium-standalone-chrome
[root@honghua-centos-01 demo]#

(9)selenium自动化脚本稍微调整一下,使用webdriver.remote,如下,这里192.168.8.104为启动selenium-standalone-chromerongqi容器所在的虚拟机额ip地址

from selenium import webdriver
from selenium.webdriver.common.by import By

driver_options = webdriver.ChromeOptions()
driver_options.add_argument('--headless')
driver_options.add_argument('--disable-gpu')
# driver = webdriver.Chrome(options=driver_options)
driver=webdriver.Remote(command_executor="http://192.168.8.104:4444/wd/hub",options=driver_options)
driver.get(url="https://www.baidu.com/")
driver.implicitly_wait(5)
elem=driver.find_element(By.ID,"su")
print(elem.get_attribute("value"))

(10)在执行selenium脚本的虚拟机上安装selenium

pip3 install selenium

(11)然后执行selenium脚本,执行结果如下,可以发现已经将“百度一下”打印出来了,表示在Linux虚拟机上已经执行成功了

猜你喜欢

转载自blog.csdn.net/redrose2100/article/details/129198381