当前位置: 首页 > article >正文

selenium grid 远程webdriver添加上网代理

################## selenium grid config start #######################
# UI自动化测试策略 Grid/Local
UIAutomation_TestStrategy = 'Grid'
selenium_grid_url = 'http://172.16.99.131:4444/wd/hub'
# Windows XP / linux
grid_platformName = 'linux'
# windows capabilities
windows_capabilities = {"platformName": "Windows XP", "browserName": "chrome"}
# linux capabilities
linux_capabilities = {
    "browserName": "chrome",
    "browserVersion": "130.0",
    "goog:chromeOptions": {"binary": "/usr/bin/google-chrome"},
    "platformName": "linux",
    "se:containerName": "",
    "se:noVncPort": 7900,
    "se:vncEnabled": True
}
proxy = "http://172.21.16.96:808"
################ selenium grid config end #########################

远程多节点运行:

from  conf import config
import time
import concurrent.futures
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

def run_test_on_grid():
    hub_url = config.selenium_grid_url
    options = webdriver.ChromeOptions()
    options.add_argument('--ignore-certificate-errors')
    options.add_argument('--ignore-ssl-errors')
    options.add_argument('--ignore-urlfetcher-cert-requests')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--ignore-certificate-errors-spki-list')
    options.add_argument('--no-sandbox')  # 在沙箱模式下运行浏览器,沙箱模式下的浏览器会忽略某些安全警告
    # # 95和96配置
    # if config.grid_platformName == "linux":
    #     capabilities = config.linux_capabilities
    #     # Configure proxy if needed
    #     proxy = config.proxy
    #     options.add_argument(f'--proxy-server={proxy}')
    # else:
    #     capabilities = config.windows_capabilities
    #
    # # ubuntu配置
    #
    # # Merge capabilities  for ubuntu
    #
    # for key, value in capabilities.items():
    #     options.set_capability(key, value)

    driver = webdriver.Remote(command_executor=hub_url, options=options)
    driver.get("www.baidu.com")
    print(driver.title)
    time.sleep(10)
    return driver

if __name__ == "__main__":
    drivers = []
    try:
        with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
            futures = [executor.submit(run_test_on_grid) for _ in range(2)]
            for future in concurrent.futures.as_completed(futures):
                drivers.append(future.result())
    except Exception as e:
        print(e)
    finally:
        for driver in drivers:
            driver.quit()

                

http://www.kler.cn/a/409450.html

相关文章:

  • 7-401 平均值
  • Git 提交的相对引用
  • 【Linux】安装cuda
  • 实验7 JavaScript编程基础7.1密码验证
  • go-web项目通用脚手架
  • 每天100w次登录请求,8G内存该如何设置JVM参数?
  • 论文解析:EdgeToll:基于区块链的异构公共共享收费系统(2019,IEEE INFOCOM 会议);layer2 应对:频繁小额交易,无交易费
  • 数据库-MySQL-Dynamic-Datasource源码解析
  • 鸿蒙征文|鸿蒙心路旅程:始于杭研所集训营,升华于横店
  • 网络安全 - SQL Injection
  • 【Python】数据抓取失败解析
  • Vue3-后台管理系统
  • 网络安全,文明上网(2)加强网络安全意识
  • 【LC】2529. 正整数和负整数的最大计数
  • 【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理
  • Java爬虫的奇妙冒险:揭开1688商品详情的神秘面纱
  • 大连环保公益管理系统|Java|SSM|Vue| 前后端分离
  • (图解)TCP的三次握手,四次挥手
  • 前后端分离,解决vue+axios跨域和proxyTable不生效等问题
  • windows下轻量级虚拟化wsl 执行linux系统实践应用