python+selenium简要内容
一.自动化就是模拟人的行为,python+selenium
二.搭建环境:
每个浏览器都有其对应的geckodriver.exe,且版本不一样geckodriver.exe也不一样,一般火狐使用:47.0.2版本,其他的可以试试,百度搜索的到
- Python中的Selenium环境搭建:
1) .在线安装:pip install selenium
2) 本地安装:python selenium install
3) 将selenium和urllib3的文件放进site-package中
- 火狐浏览器环境:
1) .安装适用的火狐浏览器47.0.2版本,关闭自动更新
2) .将geckodriver.exe放入火狐浏览器的安装路径中,打开C:\Python27\Lib\site-packages\selenium\webdriver\firefox\webdriver.py文件,修改executable_path="47.0.2版本的火狐浏览器安装路径\geckodriver.exe",
三.查看是否安装成功:
导入webdriver的包:Import selenium from webdriver
打开火狐浏览器:Driver=Webdriver.Firefox()
使用火狐浏览器访问页面:Driver.get(“要访问的页面路径”)
四.使用定位
#通过id定位输入框 find_element_by_id("文本框id")
#通过name定位输入框 find_element_by_name("文本框name")
#通过class定位输入框 find_element_by_class_name("文本框class")
#通过xpath定位输入框 find_element_by_xpath("文本框xpath")
#通过link_text定位元素 find_element_by_link_text(“文本内容”)
1) . 向文本框中发送内容: find_element_by_id("文本框id").send_keys(“内容”)
2) .退出浏览器:driver.quit()
3) .清除文本框中的内容:find_element_by_id("文本框id").clear()
4) .点击文本框: find_element_by_id("文本框id").click()
5) .跳入指定框架中:driver.switch_to_frame(“要跳入的框架名字”)
6) .跳出:driver.switch_to_default_content()
7) .获取提示框中的内容:tishi=driver.switch_to_alert().text,提示框点击确定:tishi.accept()
8).网页中上传文件:定位到文件上传按钮,定位到内容之后直接send_keys(“图片的路径”),如, find_element_by_id("上传文件按钮").send_keys(“图片的路径”)。(当然,上传的内容一定要符合上传要求,否则会报错)
五. Unittest框架:
导入unittest包,Unittest框架中的三个方法:每次加载全部用例,然后随机分配执行某个用例,执行单个用例在方法处右击,执行多个则在main方法处右击运行全部用例
setup(self):每个用例都会执行
testxxx(self):用例步骤,必须在开头加test,否则不会执行用例
tearDown(self):每个用例都会执行
六.HTMLTestRunner生成测试报告
1>下载HTMLTestRunner.py文件,地址为:
方法一:(没试过,copy的找的代码)
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(testCaseClassName) #定义一个单元测试容器
filename = "./xxx.html" #定义个报告存放路径,支持相对路径
f = file(filename,'wb') #结果写入HTML 文件
runner = HTMLTestRunner.HTMLTestRunner(stream = f,title ='Report_title',description='Report_description',verbosity = 2) #使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
runner.run(suite)
HTMLTestRunner 的 HTMLTestRunner 方法 跟 unittest.TextTestRunner 方法 一样,支持测试结果信息的收集。如下:
runner = HTMLTestRunner.HTMLTestRunner(stream = f,title ='Report_title',description='Report_description') #使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
result = runner.run(suite)
result.success_count #运行成功的数目
result.testsRun #运行测试用例的总数
result.failure_count #运行失败的数目
方法二: