介绍
- 开源的自动化测试工具
- 本次用selenium主要是为了测试一个网站的可用性,不会涉及测试的太多内容。
环境
- Python3.8
- selenium 3.141.0 (目前官网最新稳定版本为3.141.59)
- 浏览器:Chrome 79.0.3945.88
- Mac系统版本:10.15.2
折腾
原本想省事,直接用自己的MacPro直接进行试验,结果折腾了一顿,还是果断放弃。
如果你要用selenium进行web测试,那么你的第一步就是按照webdriver,详细介绍还是看官方文档
文档链接:https://selenium.dev/documentation/en/
个人一直在用谷歌浏览器,因此这里以Chrome为例进行演示,目前在用的主流的浏览器都会有对应的selenium的webdriver,Chrome的下载地址为:http://chromedriver.chromium.org/(需要科学上网才能打开)下载对应版本即可,下载完成解压即可使用。
解压完后,找到chromedriver双击直接可以启动程序,但是这样还不行,要实现selenium调用Chrome,你还需要设置chromedriver的环境变量。需要将chromedriver移动到/usr/bin目录下。
Mac系统的本身具有的安全性,有时候会给你带来小小的烦恼,从Mac10.11版本以后就不能修改usr、bin等系统文件夹的内容了,如果你直接进行移动就会报错 “operation not permitted”。那么该如何解决呢?这时候你可以在网上搜索解决方法,大部分都是如下的解决方法:
1.重启,过程中按住 command+R,进入保护模式
2.打开terminal终端,输入csrutil disable命令关闭rootless机制
然而以上的方法对我的Mac并不适用,执行csrutil disable命令后,重启移动文件还是不行,报错 “mv: rename chromedriver to /usr/bin/chromedriver: Read-only file system” 不知道是什么原因,因其Mac作为办公主力本,担心折腾出问题,影响办公,进而果断放弃,改用Linux系统进行试验。
解决了webdriver的问题,后面的问题就比较简单了,就是代码实现了。网上可以搜多许多例子:模拟百度登录,模拟qq空间登录等等,感兴趣的可以自动搜索进行学习。
from selenium import webdriver
import time
def check():
driver = webdriver.Chrome()
url = 'xxxxxxxxxxxxx'
driver.get(url)
# text = driver.find_element_by_id('wrapper').text
# print(text)
# driver.find_element_by_id('kw').clear()
# driver.find_element_by_id('kw').send_keys('selenium+python')
driver.find_element_by_id('tab_17').click()
driver.switch_to.frame(driver.find_element_by_css_selector('div#con_tab_1_7 iframe'))
driver.find_element_by_xpath('/html/body/div/div[2]/ul/li[5]/a/img').click()
driver.quit()
for i in range(100):
check()
time.sleep(5)