selenium 确实是好东西,使用selenium-server 加快执行速度,对速度有很大提升,同时可以拆分服务,进行集群部署。
目录
- 前言
- 1,关于selenium-server
- 2,本地模式
- 3,使用文档selenium-server
- 4,总结
前言
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/116972995
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
1,关于selenium-server
本来本地执行selenium 也可以,但是使用 selenium-server 会更快速,同时也更稳定。
https://www.selenium.dev/selenium/docs/api/py/index.html
2,本地模式
from selenium import webdriver
from selenium.webdriver.common.keys import Keysoptions = webdriver.ChromeOptions()desired_capabilities = options.to_capabilities() # 将功能添加到options中
desired_capabilities['loggingPrefs'] = {"performance": "ALL" # 添加日志
}# 手机模式
mobile_emulation = {"deviceName": "iPhone 6"}
options.add_experimental_option("mobileEmulation", mobile_emulation)
# 开发者模式
options.add_argument("--auto-open-devtools-for-tabs")options.add_argument('--no-sandbox')
# 无头模式,不打开浏览器
options.add_argument('headless')with webdriver.Chrome(chrome_options=options,desired_capabilities=desired_capabilities) as driver:driver.get("https://m.bilibili.com/channel/223")print(driver.title)elem = driver.find_element_by_class_name("search")print(elem)source = driver.page_source# print(source)print(driver.get_log('browser'))print(driver.get_log('driver'))#print(driver.get_log('client'))#print(driver.get_log('server'))for entry in driver.get_log('browser'):params = json.loads(entry.get('message')).get('message')print(params.get('request')) # 请求连接 包含错误连接print(params.get('response')) # 响应连接 正确有返回值得连接
3,使用文档selenium-server
下载 jar:
http://selenium-release.storage.googleapis.com/4.0/selenium-server-standalone-4.0.0.jar
https://www.selenium.dev/selenium/docs/api/py/index.html
然后执行:
java -jar selenium-server-standalone-4.0.0.jar
再使用 remote 的api 即可:
#from selenium import webdriverimport selenium.webdriver.remote.webdriverfrom selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesoptions = selenium.webdriver.ChromeOptions()desired_capabilities = options.to_capabilities() # 将功能添加到options中
desired_capabilities['loggingPrefs'] = {"performance": "ALL" # 添加日志
}# 手机模式
mobile_emulation = {"deviceName": "iPhone 6"}
options.add_experimental_option("mobileEmulation", mobile_emulation)
# 开发者模式
options.add_argument("--auto-open-devtools-for-tabs")options.add_argument('--no-sandbox')
# 无头模式,不打开浏览器
options.add_argument('headless')with selenium.webdriver.remote.webdriver.WebDriver(options=options,command_executor="http://127.0.0.1:4444/wd/hub",desired_capabilities=DesiredCapabilities.CHROME) as driver:#with webdriver.Chrome(chrome_options=options,desired_capabilities=desired_capabilities) as driver:# https://www.selenium.dev/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html# driver.get("https://m.bilibili.com/channel/223")print(driver.title)elem = driver.find_element_by_class_name("search")print(elem)source = driver.page_source# print(source)print(driver.get_log('browser'))print(driver.get_log('driver'))print(driver.get_log('server'))
都是访问同一个网站:
使用 time 命令对比下:
本地模式:
real 0m2.505s
user 0m0.575s
sys 0m0.124s
远程模式:
real 0m1.551s
user 0m0.126s
sys 0m0.026s
可以看出来,1.5 s 对比 2.5s 还是快了不少呢,要是并行执行,频繁的创建 chrome 服务,消耗还是挺大的。
4,总结
selenium server 非常方便,可以直接远程访问,方便进行服务拆分,微服务化。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/116972995
博主地址是:https://blog.csdn.net/freewebsys
selenium 确实是好东西,使用selenium-server 加快执行速度,对速度有很大提升,同时可以拆分服务,进行集群部署。相关推荐
- ArcGIS Server集群部署基于Windows系统
ArcGIS Server集群部署 1 几个重要的概念 1.1 服务.池化.实例 使用ArcGIS Server发布一个地图服务,发布服务的同时会要求定义池化的类型.最小最大实例数.用户请求一个ser ...
- Consul集群部署模式server+client
Consul是一个服务网格,它提供了一个功能齐全的控制平面,主要特点是:服务发现.健康检查.键值存储.安全服务通信.多数据中心. 在本场 Chat 中,会讲到如下内容:1.Consul核心概念2.Co ...
- NAT集群部署solo之session server
author:JevonWei 版权声明:原创作品 使用Nginx做代理服务器,部署solo,使用session server做会话黏滞 拓扑图 环境 tomcatA 172.16.253.108 t ...
- Arcgis Server 10.4.1 搭建集群环境
1.准备工作 Arcgis Server 10.4.1 以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ...
- 独家揭秘阿里云SQL Server AlwaysOn集群版重大突破
缘起 早在2015年的时候,随着阿里云业务突飞猛进的发展,SQLServer业务也积累了大批忠实客户,其中一些体量较大的客户在类似大促的业务高峰时RDS的单机规格(规格是按照 内存CPUIOPS 一定 ...
- 二、Eureka之server端集群节点发现,数据同步
一.前言 Eureka服务端封装了一个集群节点管理的类名称为PeerEurekaNodes 通过名称翻译出来为对等的Eureka节点集合,可以看出这个类是对eureka服务端集群节点抽象,下面通过源码 ...
- Sql Server 2012 集群配置
基于Windows Server 2008 R2的WSFC实现SQL Server 2012高可用性组(AlwaysOn Group) 2012年5月 微软新一代数据库产品SQL Server 201 ...
- weblogic安装和配置WebLogic Server集群
weblogic安装 点下一步即可 然后开始 配置WebLogic Server集群 WebLogic集群的体系结构 单层混合型的集群架构(Cluster) 这种架构将所有的Web应用以及相关的服务应 ...
- Eureka Server集群数据同步
一.数据同步 Eureka Server之间会互相进行注册,构建Eureka Server集群,不同Eureka Server之间会进行服务同步,用来保证服务信息的一致性.当服务提供者发送注册请求到一 ...
- selenium 保持窗口一直开启_Python+selenium自动化测试
前言 Selenium v1.0 的核心组件是 Selenium RC:Selenium v2.0 的核心组件是 WebDriver:因此可以说 v1.0 版本和 v2.0 版本完全是两套东西.而 S ...
最新文章
- 【学术相关】什么是核心期刊?国家级期刊、省级期刊、国际级期刊又是啥?...
- MediaPlayer开发全解析
- java 实现 DES加密 解密算法
- RabbitMQ中的消息不可达returnlistener和mandatory的使用
- 【TypeScript系列教程04】编译参数
- Catalan数总结
- java mathrandom函数_java Math数学工具及Random随机函数
- 《SilverLight2快速入门》之基本控件DataGrid
- ubuntu16.04 apt-get update出错:由于没有公钥,无法验证下列签名
- 大侠学java之继承
- 五分钟搭建一个MarkDown文档解析器
- 学Java开发需要考什么证书?
- python调用crt自动登录_secureCRT自动登录脚本(python)
- python中的reshape是什么意思,Python的reshape的用法
- ArcGIS 教程:Workflow Manager 快速浏览
- 【小y设计】二维码条形码打印编辑器
- 开会没带纸和笔?按下手机这个按钮,一键完成会议纪要
- 各大IT公司校园招聘程序猿笔试 面试题集锦
- 2022年上海落户全部方式!落户上海政策变化及条件汇总!
- xbox手柄usb连接linux python控制
热门文章
- 服务器cpu天梯图_12月更新最新CPU天梯图amp;显卡天梯图,选购电脑必看(含台式与笔记本电脑CPUamp;显卡)含机型推荐...
- android 免root 免流,安卓无需Root一键免流软件合集,具体哪个能用自测
- 震惊!PC端QQ也能防撤回?
- solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
- 把码云项目上传到服务器,将本地项目上传到码云上(vue项目)
- FPGA之JESD204B接口——总体概要 实例 下
- 航飞原始影像外方位元素_武汉大学生历年摄影测量试题及答案
- 百度关键词模拟点击破解版 SEO排名优化神器
- 比较全的敏捷概念知识总结
- 《敏捷软件开发》— 敏捷开发 — 敏捷实践