搭建web自动化测试环境
1. 版本选择:
Win10
Python 3.6.0
selenium 3.7.0
Pycharm-community-2018.3.5
geckodriver-v0.19.1
Firefox 56.0
2.安装 Python 3.6.0
下载地址:https://www.python.org/downloads/release
选择3.6.0 win64按要求安装。
3.安装selenium 3.7.0
(1)准备工作:
测试pip是否可用或检查pyhton中的Scripts 文件夹下是否有pip程序,如果有,就进行下一步。否则,单独下载pip
(2)安装 selenium 3.7.0
命令行方式下输入:pip install selenium==3.7.0,系统自动连接并开始下载安装 selenium 3.7.0,如下图所示:
(3)测试:
在python中输入命令Import selenium或Help(selenium),测试是否可用。
4.安装Pycharm-community-2018.3.5,在官网下载并安装。
5.安装geckodriver-v0.19.1
(1)下载地址:
https://github.com/mozilla/geckodriver/releases
(2)选择版本:V0.19.1
selenium与geckodriver、firefox的对应关系:
selenium | geckodriver | firefox |
---|---|---|
3.11 + | v0.21.0 | 57 + |
3.5 + | v0.19.0 | 55 + |
3.4 | v0.18.0 | 53 + |
3.4 | v0.17 | 52 + |
3.4 | v0.16 | 52 + |
(3)将下载的压缩包解压并放置再python安装文件中
6.安装Firefox 56.0
下载地址:http://ftp.mozilla.org/pub/firefox/releases/
7.代码测试环境是否配置成功:
(1):
from selenium import webdriver
import time
driver=webdriver.Firefox()
firstURL="http://www.sogou.com"
secondURL="http://www.baidu.com"
driver.get(firstURL)
cu_name=driver.name
cu_url=driver.current_url
cu_title=driver.title
cu_html=driver.page_source
cu_handle=driver.current_window_handle
print("浏览器是:{},URL是:{},网页title是:{}".format(cu_name,cu_url,cu_title))
print("网页内容是:\n")
print(cu_html)
print("当前窗口句柄:{}".format(cu_handle))
time.sleep(2)
driver.quit()
(2):
from selenium import webdriver
import unittest
import time
class MyTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.implicitly_wait(30)
self.driver.maximize_window()
self.base_url="http://www.baidu.com"
def test_baidu_by_id(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("unittest")
driver.find_element_by_id("su").click()
time.sleep(2)
title=driver.title
self.assertEqual(title,"unittest_百度搜索")
def test_baidu_by_element(self):
print("test2")
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element(by="id",value="kw").clear()
driver.find_element(by="id",value="kw").send_keys("unittest")
driver.find_element(by="id",value="su").click()
time.sleep(2)
title=driver.title
self.assertEqual(title,"unittest_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()
过程或实验截图:
遇到问题及解决办法:
每个机器的环境存在一定差别,版本之间的兼容问题也存在差别,可以通过更换geckodriver的版本不断尝试适合机器的版本。