目录

  • 前言
  • 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 加快执行速度,对速度有很大提升,同时可以拆分服务,进行集群部署。相关推荐

  1. ArcGIS Server集群部署基于Windows系统

    ArcGIS Server集群部署 1 几个重要的概念 1.1 服务.池化.实例 使用ArcGIS Server发布一个地图服务,发布服务的同时会要求定义池化的类型.最小最大实例数.用户请求一个ser ...

  2. Consul集群部署模式server+client

    Consul是一个服务网格,它提供了一个功能齐全的控制平面,主要特点是:服务发现.健康检查.键值存储.安全服务通信.多数据中心. 在本场 Chat 中,会讲到如下内容:1.Consul核心概念2.Co ...

  3. NAT集群部署solo之session server

    author:JevonWei 版权声明:原创作品 使用Nginx做代理服务器,部署solo,使用session server做会话黏滞 拓扑图 环境 tomcatA 172.16.253.108 t ...

  4. Arcgis Server 10.4.1 搭建集群环境

    1.准备工作 Arcgis Server 10.4.1  以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ...

  5. 独家揭秘阿里云SQL Server AlwaysOn集群版重大突破

    缘起 早在2015年的时候,随着阿里云业务突飞猛进的发展,SQLServer业务也积累了大批忠实客户,其中一些体量较大的客户在类似大促的业务高峰时RDS的单机规格(规格是按照 内存CPUIOPS 一定 ...

  6. 二、Eureka之server端集群节点发现,数据同步

    一.前言 Eureka服务端封装了一个集群节点管理的类名称为PeerEurekaNodes 通过名称翻译出来为对等的Eureka节点集合,可以看出这个类是对eureka服务端集群节点抽象,下面通过源码 ...

  7. Sql Server 2012 集群配置

    基于Windows Server 2008 R2的WSFC实现SQL Server 2012高可用性组(AlwaysOn Group) 2012年5月 微软新一代数据库产品SQL Server 201 ...

  8. weblogic安装和配置WebLogic Server集群

    weblogic安装 点下一步即可 然后开始 配置WebLogic Server集群 WebLogic集群的体系结构 单层混合型的集群架构(Cluster) 这种架构将所有的Web应用以及相关的服务应 ...

  9. Eureka Server集群数据同步

    一.数据同步 Eureka Server之间会互相进行注册,构建Eureka Server集群,不同Eureka Server之间会进行服务同步,用来保证服务信息的一致性.当服务提供者发送注册请求到一 ...

  10. selenium 保持窗口一直开启_Python+selenium自动化测试

    前言 Selenium v1.0 的核心组件是 Selenium RC:Selenium v2.0 的核心组件是 WebDriver:因此可以说 v1.0 版本和 v2.0 版本完全是两套东西.而 S ...

最新文章

  1. 【学术相关】什么是核心期刊?国家级期刊、省级期刊、国际级期刊又是啥?...
  2. MediaPlayer开发全解析
  3. java 实现 DES加密 解密算法
  4. RabbitMQ中的消息不可达returnlistener和mandatory的使用
  5. 【TypeScript系列教程04】编译参数
  6. Catalan数总结
  7. java mathrandom函数_java Math数学工具及Random随机函数
  8. 《SilverLight2快速入门》之基本控件DataGrid
  9. ubuntu16.04 apt-get update出错:由于没有公钥,无法验证下列签名
  10. 大侠学java之继承
  11. 五分钟搭建一个MarkDown文档解析器
  12. 学Java开发需要考什么证书?
  13. python调用crt自动登录_secureCRT自动登录脚本(python)
  14. python中的reshape是什么意思,Python的reshape的用法
  15. ArcGIS 教程:Workflow Manager 快速浏览
  16. 【小y设计】二维码条形码打印编辑器
  17. 开会没带纸和笔?按下手机这个按钮,一键完成会议纪要
  18. 各大IT公司校园招聘程序猿笔试 面试题集锦
  19. 2022年上海落户全部方式!落户上海政策变化及条件汇总!
  20. xbox手柄usb连接linux python控制

热门文章

  1. 服务器cpu天梯图_12月更新最新CPU天梯图amp;显卡天梯图,选购电脑必看(含台式与笔记本电脑CPUamp;显卡)含机型推荐...
  2. android 免root 免流,安卓无需Root一键免流软件合集,具体哪个能用自测
  3. 震惊!PC端QQ也能防撤回?
  4. solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
  5. 把码云项目上传到服务器,将本地项目上传到码云上(vue项目)
  6. FPGA之JESD204B接口——总体概要 实例 下
  7. 航飞原始影像外方位元素_武汉大学生历年摄影测量试题及答案
  8. 百度关键词模拟点击破解版 SEO排名优化神器
  9. 比较全的敏捷概念知识总结
  10. 《敏捷软件开发》— 敏捷开发 — 敏捷实践