戳:web自动化环境安装(selenium安装、卸载和Chromedriver下载、安装)

selenium原理和启动浏览器

  • 一、 selenium
    • 1、selenium简介
    • 2、selenium原理
  • 二、启动浏览器
    • 1、Google浏览器
    • 2、设置服务端日志输出
  • 三、Chromeoption类
    • 1、添加用户配置数据:`user-data-dir=path`

一、 selenium

1、selenium简介

  • selenium是一款基于web网页的UI自动化测试框架。
  • 支持多浏览器操作,ie、Firefox、Chrome、edge等
  • 跨平台,windows、Linux、mac都可以
  • 支持多语言,python、java、ruby等

2、selenium原理

  • webdriver是按照client/server模式设计的。
  • selenium代码与浏览器驱动程序之间是通过http协议进行数据交互的,这种方式不在乎客户端是什么样的形式,只要数据的格式和协议是服务端能够解析的就可以。
  • 同行步骤为:
    1、webdriver启动浏览器驱动程序,并设置侦听端口号
    2、webdriver客户端与浏览器服务器建立连接
    3、连接成功之后,所有的操作(比如:查找元素、点击等)都是客户端通过commonexecute发送http请求到服务端;服务端根据收到的请求做相应的操作并返回结果。

二、启动浏览器

1、Google浏览器

# 引入selenium webdriver库
from selenium import webdriver#实例化Chrome类,与webdriver建立连接,启动一个非常干净的谷歌浏览器,不带任何用户配置信息
browser = webdriver.Chrome()browser.get("https://www.baidu.com/")
  • executable_path:chrome的路径。默认值为chromedriver,会自动从系统的PATH环境变量中查找。
  • Port:chromedriver的端口号。默认值为0,表示选一个未被占用的一个端口即可。
  • Options:ChromeOptions实例对象。
  • service_args:服务端参数。即chromedriver的参数设置,为列表类型的数据。
  • desired_capabilities:具有非浏览器特定的字典对象。仅限功能,例如“proxy”或“loggingPref”。
  • service_log_path:服务器端日志输出路径。即Chromedriver的日志输出到文件中。

2、设置服务端日志输出

查看chromedriver支持的参数:
跳转到Chromedriver所在的目录,运行命令chromedriver --help


–verbose:设置所有级别的日志都输出

–log-path:设置日志输出的文件路径

# 引入selenium webdriver库
from selenium import webdriver# 实例化Chrome类,与webdriver建立连接,启动一个非常干净的谷歌浏览器,不带任何用户配置信息
browser = webdriver.Chrome(service_args=["--verbose"], service_log_path="D:\\Python37-32\chrome_server.log")browser.get("https://www.baidu.com/")

三、Chromeoption类

  • 可以通过Chromoption类对启动的浏览器添加一些设置信息。比如添加用户的缓存配置信息等。

1、添加用户配置数据:user-data-dir=path

启动浏览器时,带上用户设置的数据,如保存的登录密码、书签等。Path为谷歌浏览器设置的用户数据目录。一般都是在C:\Users\当前用户名\AppData\Local\Google\Chrome\User Data

 # 引入selenium webdriver库
from selenium import webdriver
import time
# 实例化Chrome类,与webdriver建立连接,启动一个非常干净的谷歌浏览器,不带任何用户配置信息
#browser = webdriver.Chrome(service_args=["--verbose"], service_log_path="D:\\Python37-32\chrome_server.log")
options = webdriver.ChromeOptions()
#可通过添加配置文件,让开启的google浏览器记住配置数据,比如cookies等
#options.add_argument(r"user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data")
#启动浏览器会话
browser = webdriver.Chrome(options=options)
#访问网址
browser.get("https://ke.qq.com/")
#关闭浏览器会话time.sleep(10)
browser.quit()
  • 在谷歌浏览器的地址栏输入chrome://version/,可查找path的路径
  • Chromedriver的官方网站中提供了chrome的所有参数:https://peter.sh/experiments/chromium-command-line-switches/
  • Chromedriver的官方网站:http://chromedriver.chromium.org/

2、selenium原理和启动浏览器(Chromoption类)相关推荐

  1. python+selenium 自动化之启动浏览器加载浏览器的插件

    1.之前已经总结了在浏览器启动的时候,加载插件的一种方法(创建一个profile),这里有一种方法,可以加载到系统浏览器的所有插件,方便在脚本执行中运用firebug,firepath灯进行脚本调试. ...

  2. Selenium原理介绍

    Selenium 经历了两个版本,Selenium 1.0 和 Selenium 2.0,本文仅介绍Selenium2的原理,在Selenium 2.0 主推的是WebDriver,Selenium2 ...

  3. python火狐配置文件_Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容...

    封装一个自己的类-浏览器引擎类 前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动 ...

  4. 自动化测试-selenium启动浏览器

    在自动化测试过程中,通过selenium启动浏览器时,可能需要加载插件(如测试用的firebug.或产品中要求必须添加某插件等).读取用户数据(自己浏览器的配置文件/别人直接给的浏览器配置文件).设置 ...

  5. python3 多进程 selenium 不启动浏览器 同时执行多个自动化任务

    下载依赖包: pip insall selenium 备注: 该脚本使用的selenium 版本是: 4.7.2 直接贴代码: import os import time import random ...

  6. 【重难点】【计算机网络 01】OSI 七层模型和 TCP/IP 四层模型、IP 地址分为哪几类、ping 的原理、从浏览器地址栏输入 URL 到显示网页的过程、什么是 socket

    [重难点][计算机网络 01]OSI 七层模型和 TCP/IP 四层模型.IP 地址分为哪几类.ping 的原理.从浏览器地址栏输入 URL 到显示网页的过程.什么是 socket 文章目录 [重难点 ...

  7. php 启动手机浏览器,php实现读取手机客户端浏览器的类

    php实现读取手机客户端浏览器的类 /** *   函数名称:   getUA *   函数功能:   取UA *   输入参数:   none *   函数返回值:   成功返回号码,失败返回fal ...

  8. Selenium原理探秘

    Selenium是ThoughtWorks公司研发的一个强大的基于浏览器的开源自动化测试工具,它通常用来编写web应用的自动化测试.早期也即Selenium1.x时期主要使用Selenium RC(S ...

  9. 老李推荐:第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用 1...

    老李推荐:第5章5节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 获取系统服务引用 上一节我们描述了monkey的命令处理入口函数run是如何调用optionPro ...

最新文章

  1. jmeter数据库负载测试_JMeter:负载测试关系数据库
  2. 《PPT高手之道:六步变身职场幻灯派》一0.4 PPTology的3大阶段、6个步骤、24个模块...
  3. zabbix 3.2.3 appliance默认用户名及密码
  4. x264源代码简单分析:熵编码(Entropy Encoding)部分
  5. HTML map 设置图热点
  6. hudson构建配置
  7. 一篇个人认为对RNN写的比较好的文章
  8. Sp_15_极限定理
  9. Eclipse下载与安装及汉化(详解版)
  10. 时间序列模型ARIMA -- 唐宇迪
  11. 功放世界 debug
  12. 一元云购系统接入手机短信功能说明【V3版】
  13. C/C++遍历文件夹指定文件
  14. linux红帽修改默认字体大小,为 Redhat Linux 添加新字体
  15. 社工小组 计算机小组活动,小组工作活动计划1
  16. Android 开发:(十四)NavigationBar篇-自定义顶部导航栏
  17. bootloader 启动过程
  18. Excel如何快速删除空白行?替换部分字符?
  19. 利用定时器实现倒计时
  20. win10系统卷影复制服务器,卷影复制Windows 10与全能备份软件

热门文章

  1. ScheduledFuture
  2. DEM数据下载链接(ASTER GDEM、SRTM、ALOS PALSAR DEM)
  3. 线路/信道编码技术(1)——8B/10B编码
  4. 能源价格风险管理matlab源代码 经济物理学、电价、风险管理、均值回归
  5. C++ :线程的暂停、恢复和停止
  6. 如何使用Qt绘制时间刻度轴
  7. 失落世界服务器国庆宝箱位置,烟雨江湖国庆宝箱在哪里 烟雨江湖中秋宝箱位置坐标大全...
  8. linux图形界面安装rpm包,linux中alias别名及rpm安装软件
  9. 钉钉企业内部应用 - 初始化配置
  10. 炒股杠杆-AI量化交易