docker+python+selenium grid 4+alluer实现UI 自动化(未完)

准备

  • java 11 https://www.oracle.com/cn/java/technologies/javase/jdk11-archive-downloads.html
  • selenium grid4
  • chromedriver[106] https://chromedriver.chromium.org/downloads
  • python
  • selenium
  • docker
  • allure
  • selenium-server-4.5.3.jar https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.6.0

第一 selenium grid4 安装

Ⅰ 快速入门阶段

前提是一定要下载个 selenium 三件套,如果连三件套都不知道是什么就自行百度,谢谢
官方文档: https://www.selenium.dev/documentation/grid/getting_started/

将浏览器驱动 chromedriver.exeselenium-server-4.5.3.jar 下载完成后,放置到一个文件夹,使用下面命令进行启动

  1. 默认端口: java -jar selenium-server-.jar standalone

  2. 自定义端口:java -jar selenium-server-.jar standalone --port 5555
    docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第1张图片

  3. http://localhost:4444 进行登录
    这个就是启动成功的图片
    docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第2张图片
    怎么让有会话呢,直接写代码

以下是 这是官方代码的,要进行更改的

from selenium import webdriver

firefox_options = webdriver.FirefoxOptions()
driver = webdriver.Remote(
    command_executor='http://www.example.com', // 这个URL 要改成你的selenium 监控地址
    options=firefox_options
)
driver.get("http://www.google.com")
driver.quit() 

这是我的代码

from selenium import  webdriver
import  time
chrom_options = webdriver.ChromeOptions()
driver= webdriver.Remote(
    command_executor="http://192.168.1.6:4444", //这边是更改后的代码
    options=chrom_options
)
driver.get("http://www.baidu.com")
time.sleep(222222)
driver.quit()

成功标志如下,到这里说明最简单的已经成功了
docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第3张图片
docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第4张图片

第二 grid 一共有4中方式

第一种方式: 独立,node和hub 在一台电脑上

适用范围:

  • 使用本地开发或调试测试RemoteWebDriver
  • 推送代码前运行快速测试套件
  • 在CI/CD中设置一个易于的网格

先配置jenkins 进行测试,后面都会用

  • jenkins 安装插件 selenium 和selenium Capability Axis
    docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第5张图片
第二步,选择系统配置

docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第6张图片

--------默认就行了

docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第7张图片

新建任务

docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第8张图片

点击保存,到任务中心点击运行即可

docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第9张图片

第二种方式: 中心和节点

说明:

  • 最常用
  • 不同的机器组合在一起
  • 具备单个入口,在不同环境运行测试
  • 不破坏网络情况下扩展和减少容量
HUB的组成:路由,分发服务器,会话映射、新建会话队列和事件总线

1、启动hub(同一台计算机)

java -jar selenium-server-.jar hub
启动node
节点1
java -jar selenium-server-.jar node --port 5555
节点2
java -jar selenium-server-.jar node --port 6666

如下
docker+python+selenium grid 4+alluer实现UI 自动化(未完)_第10张图片

启动hub(不同计算机)PS:两台计算能ping 同

默认端口 4444, 后台登陆地址:ip:4444
A机器作为hubjava -jar selenium-server-4.5.3.jar hub
B机器作为node java -jar selenium-server-4.5.3.jar node --hub http:// A机器的IP:4444

不是默认端口, 后台登陆地址:ip:6666
A机器作为hub java -jar selenium-server-4.5.3.jar hub --port 6666
B机器作为node java -jar selenium-server-4.5.3.jar node --hub http:// A机器的IP:4444

怎么执行另外一台电脑的浏览器呢,代码如下
然而居然报错,查找问题中2022-10-31-14点03分

#coding=utf-8
from selenium import webdriver
 
selenium_grid_url = "http://XXXXXXXXXXXX:4444/wd/hub"
CHROME= {"browserName": "chrome"}
browser = webdriver.Remote(desired_capabilities=CHROME,command_executor=selenium_grid_url)
browser.get("http://fanyi.baidu.com")
browser.find_element_by_id("baidu_translate_input").send_keys("hello world")
print(browser.current_url)
browser.get_screenshot_as_file(r"/tmp/chrome.png")
browser.quit()
docker run -d --net grid -e SE_EVENT_BUS_HOST =selenium-hub \ 
    --shm-size= " 2g " \ 
    -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ 
    -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ 
   --name selenium-node-chrme1 selenium/node-chrome
from selenium import webdriver

firefox_options = webdriver.FirefoxOptions()
driver = webdriver.Remote(
    command_executor='http://www.example.com',
    options=firefox_options
)
driver.get("http://www.google.com")
driver.quit() 

``加粗样式`
https://github.com/SeleniumHQ/docker-selenium



你可能感兴趣的:(selenium学习,docker,python,selenium)