从安装库、包和文件配置上手Web自动化测试,Python主要用selenium和unittest库,此外还有用于远程测试的Selenium Server包。浏览器需要配置chromedriver。
可以在Pycharm,File—>Setting—>Project Interpreter中找到selenium库安装之。如图: 也可以在命令行中利用pip安装之,前提是pip命令包也安装过,且是最新版本。如图:上面显示我已经安装过了。
步骤和安装selenium库是一样的,参考安装即可。
这个jar包是用来进行远程测试的,刚开始上手测试可能用不到,但建议安装,不用以后浪费时间。 下载地址:https://www.selenium.dev/downloads/ 下载后是个jar包,找个文件夹把它放进去好好保存哦!
其实用别的浏览器测试Web也可以,我是用Chrome学习的。 首先将自己的浏览器更新到最新版本,在URL地址栏输入chrome://version查看浏览器版本,如下所示: 然后到 http://npm.taobao.org/mirrors/chromedriver/ 将对应版本的浏览器驱动下载放到chrome浏览器的安装文件夹下,我的安装文件夹是默认选择的,即C:\Users\Jiang H.T\AppData\Local\Google\Chrome\Application,chromedriver放进去后是这样的: 弄好后,在环境变量的Path项把chromedriver的地址加进去。就是这里: 至此,配置部分就结束了。可以开始写测试用例脚本进行Web自动化测试了,下面给出测试Python官网搜索框功能的简单测试脚本。
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys # 创建测试https://www.python.org/搜索功能的测试用例 class PythonorgSearch(unittest.TestCase): # unittest.TestCase表明这个类是个测试用例 def setUp(self) -> None: self.driver = webdriver.Chrome() # 创建浏览器实例 def test_search_in_pythonorg(self): driver = self.driver # 创建浏览器实例的本地引用 driver.get("https://www.python.org/") # 打开页面 self.assertIn("Python", driver.title) # 断言确保Python在标题中 elem = driver.find_element_by_name('q') # 找到搜索框 elem.clear() # 清空搜索框 elem.send_keys("pycon") # 输入搜索内容 elem.send_keys(Keys.RETURN) # Enter assert "No results found." not in driver.page_source # 为了保证某些特定的结果被找到 def tearDown(self) -> None: self.driver.close() if __name__ == '__main__': unittest.main()
为了使用远程 WebDriver, 你应该拥有一个正在运行的 Selenium 服务器。 通过下列命令运行服务器(就是上面下载的那个jar包): java -jar selenium-server-standalone-3.141.59.jar 得到这样的信息: 将上面测试用例的对应代码改成这个样子(按自己的需求改),就可以远程测试了:
driver = webdriver.Remote( command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME) driver = webdriver.Remote( command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.OPERA) driver = webdriver.Remote( command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.HTMLUNITWITHJS) driver = webdriver.Remote( command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities={'browserName': 'htmlunit', 'version': '2', 'javascriptEnabled': True})