(本文欢迎转载,注明来源即可:https://blog.csdn.net/actionwind/article/details/103530132)
虽然我不怎么喜欢Python这门语言,但貌似大多数做Selenium的人用的是Python,所以为了满足社会这种对于低端语言的需求,还是来介绍一下Python版的Selenium吧(哈哈,开玩笑的了,用这种低端语言的人千万别往心里去)。
一、首先还是脚本开发环境的搭建:
1、安装Python:当然是上官网下载了,打开后配置环境变量勾选上,点击下一步即可,没什么好说的了,这都搞不定就不用往下看了,嘿嘿。
(后来我发现有一点可真的非得说明不可:千万不要安装在含有中文的目录,一定要毫不犹豫的就安装在英文目录,最好连空格都不要有。否则,你的身体和精神很有可能会出现诸如头痛、烦躁、狂暴、想砸电脑、想砸桌子、想打人、精神失常等莫名其妙的不适症状,切记!切记!这傻冒语言对中文支持得不好,被这个问题坑了好几天,各种莫名其妙的问题层出不穷,重新安装在英文目录之后,一切迎刃而解,真是不吐不快。)
2、安装Selenium模块:上官网下载selenium-*****-******.whl 包,然后打开cmd窗口,运行pip install {selenium包路径} 。然后就安装好了。也可以直接运行pip install selenium进行安装。
3、安装Pytest:在cmd窗口运行pip install pytest。
Pytest是一个测试框架,类似于Java中的Junit。主要是用它来管理测试用例、输出测试报告等。当然你也可以用其他测试框架,但Selenium官方就是用的这框架,比如Selenium ide所录制的脚本导出成python这种低端语言的脚本后,脚本的结构就是基于pytest的,所以你最好就用这个测试框架。
4、安装pytest-html :在cmd窗口运行pip install pytest。这个模块是用于生成测试报告。
5、设置WebDriver:到Selenium官网下载浏览器驱动器geckodriver、chromedriver、IEDriverServer,放到同一个目录,在系统的环境变量中把那个目录路径加入到Path中。(其实上一篇说J版的Selenium也可以做一步,设置完后用起来方便些。)
好,既然开发环境已经搭建好了,
二、那我们现在就开始来写一条测试用例吧:打开Python的IDLE->File->New File,输入以下的代码:
import pytest
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
#Pytest框架需要写测试类,类名以Test开头,在类里面写要测试的内容,不能带有init方法。
class TestT1():
#测试运行前的设置
def setup_method(self,method):
self.driver=webdriver.Firefox()
self.vars={}
#测试运行后的清理工作
def teardown_method(self,method):
print("测试完成了")
self.driver.quit()
#开始写测试用例,函数名必须以 test_ 开头
def test_t1(self):
#设置要测试的网页
self.driver.get("http://www.szlhlib.org.cn/web/index.do")
time.sleep(2)
#用id找到搜索框、点击、输入搜索关键字、按回车键
searchField=self.driver.find_element(By.ID, "key")
searchField.click()
searchField.send_keys("人性的弱点")
self.driver.find_element(By.ID, "key").send_keys(Keys.ENTER)
#根据url跳转到新窗口
for string in self.driver.window_handles:
self.driver.switch_to.window(string)
if self.driver.current_url=="http://219.134.63.22/Search/searchshow.jsp?v_tablearray=bibliosm%2C&v_book=on&eventsite=WWW-044010&v_index=all&v_value=%E4%BA%BA%E6%80%A7%E7%9A%84%E5%BC%B1%E7%82%B9&cirtype=&v_startpubyear=&v_endpubyear=&v_publisher=&v_author=&sortfield=score&sorttype=desc&pageNum=10":
break
time.sleep(5)
#点击其中一个搜索结果
self.driver.find_element(By.PARTIAL_LINK_TEXT,"《人性的弱点》").click()
#根据url跳转到新窗口
for string in self.driver.window_handles:
self.driver.switch_to.window(string)
if self.driver.current_url=="http://219.134.63.22/Search/searchdetail.jsp?v_tablearray=bibliosm,&v_recno=583597&v_curtable=bibliosm&site=null":
break
time.sleep(2)
#写断言,检验打开的网页确实有这个内容
assert self.driver.find_element(By.CSS_SELECTOR, ".title").text == "卡耐基经典全集 : 《人性的弱点》《美好的人生》/ (美)卡耐基著;詹衡宇译 卡耐基经典全集 : 《人性的弱点》·《美好的人生》 = The Classic Works of Dale Carnegie/ (美)戴尔·卡耐基(Dale Carnegie)著;詹衡宇译"
好,写完代码之后将它保存为一个py文件,文件名以test_ 开头。
三、然后在cmd界面输入运行测试用例的命令,比如:pytest E:\copy\Selenium\test_lib.py --html=./report.html 。py文件的路径自己改。
四、运行完之后会显示测试结果,并显示出测试报告的保存路径,比如:generated html file: file://C:\Users\***\report.html ,双击就会在浏览器打开了。
至此,一个完整的自动化测试过程就完成了。
参考阅读:https://www.cnblogs.com/fnng/p/4768239.html
https://blog.csdn.net/weixin_38278993/article/details/90343321