戳:web自动化环境安装(selenium安装、卸载和Chromedriver下载、安装)
selenium原理和启动浏览器
一、 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
importtime# 实例化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/![在这里插入图片描述](https://img-blog.csdnimg.cn/1a851745c6c7405a9ffadce990e85fc1.png)
版权归原作者 我是海浪 所有, 如有侵权,请联系我们删除。