目录
Selenium简介
selenium是一款基于web网页的UI自动化测试框架。
- 支持多浏览器操作:IE, Firefox, Chrome, Edge, Safaria等
- 跨平台:window, linux,mac都可以
- 支持多语言:python, Java,ruby, C#等
selenium webdriver原理:
- webdriver是按照client/server模式设计的。
- client:编程语言客户端。比如说python selenium客户端。
- server:浏览器驱动程序。用来接收客户端的请求并驱动浏览器执行操作然后返回结果。
- selenium代码与浏览器驱动程序之间是通过http协议进行数据交互的。这种方式不在乎客户端是什么样的形式,只要数据的格式和协议是服务端能够解析的就可以。
通信步骤:
- webdriver启动浏览器驱动程序,并设置侦听端口号
- webdriver客户端与浏览器服务端建立连接
- 连接成功之后,所有操作(比如查找元素,点击等)都是客户端通过commandExecuter发送http请求到服务端;服务端根据收到的请求做相应的操作并返回结果
Chrome浏览器
Chrome类实例化参数说明:
- executable_path:chrome的路径。默认值为chromedriver,会自动从系统的PATH环境变量中查找。
- Port:chromedriver的端口号。默认值为0,表示选一个未被占用的一个端口即可。
- Options:ChromeOptions实例对象。
- service_args:服务端参数。即chromedriver的参数设置,为列表类型的数据。
- desired_capabilities:具有非浏览器特定的字典对象。仅限功能,例如“proxy”或“loggingPref”。
- service_log_path:服务器端日志输出路径。即Chromedriver的日志输出到文件中。
设置服务端日志输出
查看chromedriver支持的参数:
- 跳转到Chromedriver所在的目录,运行命令chromedriver --help
--verbose:设置所有级别的日志都输出
--log-path:设置日志输出的文件路径
Chromeoption类
可以通过Chromoption类对启动的浏览器添加一些设置信息。比如添加用户的缓存配置信息等。
关闭谷歌浏览器的提示栏
--disable-infobars 注意:此方法在新版本中已被弃用。
- 应该使用如下方法关闭谷歌浏览器的提示栏
参考网站:
注意:chrome_options已经被弃用,要使用options
添加用户配置数据
--user-data-dir或user-data-dir=path
注意:
-
python代码运行之前,请关闭已打开的chrome浏览器。否则,chromedriver会挂起,后面打开url的操作不会执行。
-
通过在谷歌浏览器的地址栏输入chrome://version/,可查找path的路径。
实现Chromedriver的后台静默运行
--headless
Chromedriver的官方网站中提供了chrome的所有参数:
https://peter.sh/experiments/chromium-command-line-switches/
Chromedriver的官方网站:
http://chromedriver.chromium.org/