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虚拟机上已经执行成功了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Linux上使用selenium截图,需要安装selenium和对应的浏览器驱动。以使用Chrome浏览器为例,可以按照以下步骤操作: 1. 安装Chrome浏览器和ChromeDriver驱动: ``` # 安装Chrome浏览器 sudo apt-get update sudo apt-get install -y google-chrome-stable # 下载对应版本的ChromeDriver驱动并解压 wget https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip unzip chromedriver_linux64.zip ``` 2. 安装selenium: ``` pip install selenium ``` 3. 编写Python脚本,使用selenium打开网页并截图: ```python from selenium import webdriver # 创建Chrome浏览器实例 driver = webdriver.Chrome('./chromedriver') # 打开网页 driver.get('https://www.baidu.com') # 截图并保存 driver.save_screenshot('baidu.png') # 关闭浏览器 driver.quit() ``` 在Docker中使用selenium实现截图,可以使用selenium/standalone-chrome镜像,该镜像已经集成了Chrome浏览器和ChromeDriver驱动,可以直接使用。按照以下步骤操作: 1. 拉取selenium/standalone-chrome镜像: ``` docker pull selenium/standalone-chrome ``` 2. 运行容器: ``` docker run -d -p 4444:4444 selenium/standalone-chrome ``` 3. 在容器中执行Python脚本,使用selenium打开网页并截图: ```python from selenium import webdriver # 创建Chrome浏览器实例 driver = webdriver.Remote('http://localhost:4444/wd/hub', desired_capabilities=webdriver.DesiredCapabilities.CHROME) # 打开网页 driver.get('https://www.baidu.com') # 截图并保存 driver.save_screenshot('baidu.png') # 关闭浏览器 driver.quit() ``` 注意,在容器中执行Python脚本时,需要将Chrome浏览器实例的地址指定为http://localhost:4444/wd/hub。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

redrose2100

您的鼓励是我最大的创作动力

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

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

打赏作者

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

抵扣说明:

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

余额充值