本文实例讲述了Selenium基本用法。分享给大家供大家参考,具体如下:
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
安装
pip install selenium
安装驱动程序
下面介绍几种主流浏览器的驱动程序下载地址:
浏览器 | 下载地址 |
---|---|
Chrome | https://sites.google.com/a/chromium.org/chromedriver/downloads |
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
Firefox | https://github.com/mozilla/geckodriver/releases |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
下面以windows环境,Chrome浏览器为例,我下载的是2.36版本的驱动chromedriver_win32.zip,解压得到一个chromedriver.exe文件,将其放置在浏览器的安装目录之下,如图所示:
selenium的简单用法
如果你已经按照上面安装了selenium,并且安装了驱动程序,下面来简单的玩一玩selenium:
from selenium.webdriver import Chromefrom selenium.webdriver.common.keys import Keys# 创建Chrome WebDriver实例,此路径为驱动程序的路径driver = Chrome("C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe")# 加载URL网页driver.get("http://www.baidu.com/")# 判断标题中是否包含该字符串assert "百度一下" in driver.title# 查找id=kw的节点element = driver.find_element_by_id("kw")# 清空原有的输入,输入python进行搜索element.clear()element.send_keys("python")element.send_keys(Keys.RETURN)# 判断是否有结果返回assert "No results found." not in driver.page_source# 关闭当前标签,也可以使用quit()关闭浏览器driver.close()
上面的栗子,简单介绍了一下selenium的用法,接下来将结合selenium与unittest来编写测试:
import unittestfrom selenium.webdriver import Chromefrom selenium.webdriver.common.keys import Keys# 继承至TestCase,表示这是一个测试用例类class BaiduCase(unittest.TestCase): # 初始化的一部分 def setUp(self): self.driver = Chrome("C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe") # 测试用例方法,名称可以自定义,方法名称始终以test开头 def test_serch(self): self.driver.get("https://www.baidu.com/") assert "百度一下" in self.driver.title element = self.driver.find_element_by_id("kw") element.clear() element.send_keys("python") element.send_keys(Keys.RETURN) assert "No results found." not in self.driver.page_source # 在执行完各种测试用例方法之后会执行,为一个清理操作 def tearDown(self): self.driver.close()if __name__ == "__main__": unittest.main()
新闻热点
疑难解答