【python】docker-selenium 分布式selenium模拟浏览器 |可视化 或 后台运行selenium 部署与使用

一、分布式selenium

1、部署 docker-selenium

Github官方地址如下:
https://github.com/SeleniumHQ/docker-selenium?tab=readme-ov-file

执行安装指令:
1、这里可以将dashboard映射接口改为 14444(记得开放安全组)

docker run --rm -it -p 14444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome

2、UI界面

访问网址:
1、这里映射的是14444端口

http://127.0.0.1:14444/ui/

在这里插入图片描述

在这里插入图片描述

点击 《Session》tabs

在这里插入图片描述

点击摄像头按钮
默认密码:secret

在这里插入图片描述

可以看到模拟浏览器正在运行的效果

在这里插入图片描述

3、编程调用 docker-selenium


def login_get_cookie():# 配置浏览器选项chrome_options = webdriver.ChromeOptions()chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-dev-shm-usage')# 连接到远程Selenium Chrome节点browser = webdriver.Remote("http://127.0.0.1:14444", options=chrome_options)try:browser.get("https://xxbb.com/Account/Login")# 输出网页标题print(browser.title)account_name = '123'passward = '456'# 找到用户名和密码输入框,并模拟输入账号密码(请替换为实际的元素定位方式)# driver.find_element(By.ID,"validemail2").send_keys(account_name)print("Waiting for element to be clickable...")element = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[id="validemail2"]')))element.send_keys(account_name)# print(browser.page_source)print("Element is clickable.")print("---------------获取到元素准备登录")browser.find_element(By.XPATH, '/html/body/div[1]/div/div/div/div[2]/div/form/div[2]/input').send_keys(passward)browser.find_element(By.ID, "button").click()# # 提交登录表单(如果需要点击登录按钮的话)# login_button = driver.find_element_by_css_selector('input[type="submit"]')  # 或其他定位方式# login_button.click()# 等待页面加载完成(如果需要的话,可以使用WebDriverWait配合expected_conditions进行等待)# ...# print("----------", browser.get_cookies())# 获取当前页面的所有Cookiecookies = browser.get_cookies()# print(cookies)# 初始化一个空字符串,用于存储拼接后的cookie字符串cookie_string = ""for cookie in cookies:print(f"Name: {cookie['name']}, Value: {cookie['value']}")# 将每个cookie的name和value拼接成形如"name=value"的格式,并添加到cookie_string中cookie_string += f"{cookie['name']}={cookie['value']};"# 去除最后一个分号cookie_string = cookie_string[:-1]return cookie_stringfinally:browser.quit()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载)

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载) iPhone 镜像、Safari 浏览器重大更新、备受瞩目的游戏和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoia/&a…

细说ARM MCU的串口发送数据的实现过程

目录 1、条件及工程配置 2、实现串口发送的库函数 3、修改whlie(1)中的代码 4、修改回调函数 5、下载运行 前面的文章介绍了用串口的接收中断来接收数据,本文介绍通过串口从MCU向外发送数据。 1、条件及工程配置 文章依赖的硬件及工程配置同本文作者的其他文…

【Unity】Inspector排版扩展学习初探

一、简单的Unity Inspector扩展 [SerializeField] [SerializeField] 作用:让private属性也可以显示在面板上 [Range(x , y)] [Range(x , y)] 作用: 让参数从输入框变为范围滑条 [Header(" 标题 ")] [Header(" 标题 ")]作用&am…

如何选择合适的 AWS 区域对网站性能和成本?

选择合适的 AWS 区域对网站性能和成本都有很大影响,我们结合九河云的分析来总结一些主要考虑因素: 1. 地理位置和用户分布 最好选择靠近目标用户的区域,可以减少网络延迟,提高响应速度。如果用户分散在世界各地,可以考虑使用 AWS 的全球加速器或内容分发网络(CDN)服务。 2. …

docker 容器 network host 模式启动

docker 默认启动容器 network 是 bridge 模式,需使用 -p 映射端口实现容器与宿主机网络通信,较安全; 当使用 network host 模式,直接走宿主机网络通信,较不安全。 下面来一个 docker 容器 network host 模式启动 的 实…

SpringBoot:CORS是什么?SpringBoot如何解决跨域问题?

一、简介 跨域资源共享(CORS, Cross-Origin Resource Sharing)是一个W3C规范,它定义了一种浏览器和服务器交互的方式来确定是否允许跨源请求。当一个资源(如HTML页面、JavaScript文件、图片等)从一个源(ori…

GPT-4o更容易越狱?北航南洋理工上万次测试给出详细分析

卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践,基于大语言模型和RAG技术,集合海量工业领域生态资源方优质产品和知识服务,旨在通过智能搜索、连续交互,实时生成个性化的内容…

CentOS7下快速升级至OpenSSH9.7p2安全版本

一、CentOS7服务器上编译生成OpenSSH9.3p2的RPM包 1、编译打包的shell脚本来源于该项目 https://github.com/boypt/openssh-rpms解压zip项目包 unzip openssh-rpms-main.zip -d /opt cd /opt/openssh-rpms-main/ vim pullsrc.sh 修改第23行为source ./version.env 2、sh pull…

知识图谱存在的挑战---商业模式相关和人才相关

文章目录 商业模式相关人才相关 商业模式相关 商业模式是通过协调关系,利用资源,获得价值和利益,将这些内容连接起来,从而形成一种企业满足消费者需求的动态系统。一种商业模式包含的要素很多导致商业模式的种类也很多&#xff0c…

比较市场上14款最佳的看板工具软件

文章对比了14款看板工具软件:PingCode、Worktile、Trello、Asana、Teambition、Monday、ClickUp、Wrike、Jira、Kanban Tool、MeisterTask、Teamhood、Leankit by Planview、ZenHub。 看板工具以其直观的设计和灵活性,成为团队协作和项目跟踪的首选。通过…

Java Collections集合的工具类使用方法

import java.util.*; public class test1 {public static void main(String[] args){// Collections集合的工具类使用方法/*1.Collections.addAll(list,l1,l2,l3...) 可变参数添加对象2.Collections.shuffle(list) 打乱集合中的元素顺序3.Collection.sort(list, new Comparator…

python3的基本语法说明二

一. 简介 前一篇文章简单学习了 python3 的一些基本语法,文章如下:python3的基本语法说明一-CSDN博客 本文继续学习 python3 的基本语法。 二. python3 的基本语法 1. 多行语句 Python 通常是一行写完一条语句,但如果语句很长&#xff0…

【阅读论文】-- LiveRAC:系统管理时序数据的交互式可视化探索

LiveRAC:系统管理时序数据的交互式可视化探索 摘要引言相关工作系统管理角色和活动当前工具的局限性 迭代设计方法参加者设计阶段 设计要求可视化解决方案设计原则LiveRAC 接口执行 纵向评价非正式纵向研究方法对设计的影响使用场景 结论致谢参考文献 摘要 我们介绍…

利用免费的可视化组件,零代码制作一个电商销量大屏居然这么简单!

每到一年一度的618和双十一时,由于各种平台的优惠力度,使人们纷纷清空购物车下单,而在这庞大的销售数据下,各大商家却能够在第一时间发布整体销售业绩和数额,在这高效且巨大的数据背后,你是否有了解过展示数…

算法007:三数之和

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/3sum/ 这个题相较于前几个题来说比较难,思想是前面一个题目…

优化yarn在任务执行时核数把控不准确的问题

核数不准这个事情是个概率问题,如果你碰见了,只能说你有点非欧,本质上是因为集群配置问题,默认时yarn不会去精准把控任务的核数,因为默认的资源计算方式是用实际内存去估算核数,这就导致如果大家配置任务时…

探索新领域的四步学习策略

一、构建知识框架 广泛探索: 在探索新领域的初始阶段,我们需要像探险家一样进行全面的扫描。首先,利用网络资源,广泛搜集不同难度和视角的书籍、文章、在线课程等材料,以确保获得多元化的视角。不要局限于单一的观点或…

LSTM 词语模型上的动态量化

原文链接 (beta) Dynamic Quantization on an LSTM Word Language Model — PyTorch Tutorials 2.3.0cu121 documentation 引言 量化涉及将模型的权重和激活值从浮点数转换为整数,这样可以缩小模型大小,加快推理速度,但对准确性的影响很小…

GitHub每日最火火火项目(6.14)

以下是按照要求对每个项目的总结: 项目名称:huggingface / diffusers 项目介绍:diffusers 是一个强大的工具库,专注于图像和音频生成的扩散模型。它提供了一系列预训练模型和便捷的接口,使开发者能够轻松地探索和利用…

vue2项目更换element-ui的主题色(绝对有效,操作简单)

vue2项目更换element-ui的主题色(绝对有效,操作简单) 前言:使用vue2element-ui开发web端项目的朋友应该会有修改element-ui主题色的需求,然而 网上几年前就各种传言element-ui不再维护了,官网显示的最后一次更新日期为2023-08-24…