介绍

  • 开源的自动化测试工具
  • 本次用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/(需要科学上网才能打开)下载对应版本即可,下载完成解压即可使用。
截屏2019-12-22下午9.09.30.png

截屏2019-12-22下午9.25.31.png
解压完后,找到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空间登录等等,感兴趣的可以自动搜索进行学习。

  1. from selenium import webdriver
  2. import time
  3. def check():
  4. driver = webdriver.Chrome()
  5. url = 'xxxxxxxxxxxxx'
  6. driver.get(url)
  7. # text = driver.find_element_by_id('wrapper').text
  8. # print(text)
  9. # driver.find_element_by_id('kw').clear()
  10. # driver.find_element_by_id('kw').send_keys('selenium+python')
  11. driver.find_element_by_id('tab_17').click()
  12. driver.switch_to.frame(driver.find_element_by_css_selector('div#con_tab_1_7 iframe'))
  13. driver.find_element_by_xpath('/html/body/div/div[2]/ul/li[5]/a/img').click()
  14. driver.quit()
  15. for i in range(100):
  16. check()
  17. time.sleep(5)