如何正确的使用硒

  介绍

本篇文章给大家分享的是有关如何正确的使用硒、小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

硒是一个用于网络应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE (7、8、9、10、11), Mozilla Firefox、Safari、Chrome, Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能,创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成。net、Java、Perl等不同语言的测试脚本。

<强>安装

pip  install 硒

<强>安装驱动程序

下面介绍几种主流浏览器的驱动程序下载地址:

浏览器下载地址Chromehttps://sites.google.com/a/chromium.org/chromedriver/downloadsEdgehttps:/developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/Firefoxhttps://github.com/mozilla/geckodriver/releasesSafarihttps:/webkit.org/blog/6900/webdriver-support-in-safari-10/

下面以windows环境,Chrome浏览器为例,我下载的是2.36版本的驱动chromedriver_win32.zip,解压得到一个chromedriver.exe文件,将其放置在浏览器的安装目录之下,如图所示:

如何正确的使用硒

<强>硒的简单用法

如果你已经按照上面安装了硒,并且安装了驱动程序,下面来简单的玩一玩硒:

得到selenium.webdriver  import 铬   得到selenium.webdriver.common.keys  import 钥匙   #,创建Chrome  WebDriver实例,此路径为驱动程序的路径   driver =, Chrome (“C: \ Program  Files 谷歌(x86) \ \ \程序\ chromedriver.exe"铬)   #,加载URL网页   driver.get (“http://www.baidu.com/")   #,判断标题中是否包含该字符串   assert “百度一下“driver.title拷贝   #,查找id=千瓦的节点   时间=element  driver.find_element_by_id (“kw")   #,清空原有的输入,输入python进行搜索   element.clear ()   element.send_keys (“python")   element.send_keys (Keys.RETURN)   #,判断是否有结果返回   assert “No  results 发现干净not  driver.page_source拷贝   #,关闭当前标签,也可以使用辞职()关闭浏览器   driver.close ()

上面的栗子,简单介绍了一下硒的用法,接下来将结合硒与unittest来编写测试:

import  unittest   得到selenium.webdriver  import 铬   得到selenium.webdriver.common.keys  import 钥匙   #,继承至TestCase,表示这是一个测试用例类   class  BaiduCase (unittest.TestCase):   #,才能初始化的一部分   def 才能设置(自我):   ,,,self.driver =, Chrome (“C: \ Program  Files 谷歌(x86) \ \ \程序\ chromedriver.exe"铬)   #,才能测试用例方法,名称可以自定义,方法名称始终以测试开的头   def 才能test_serch(自我):   ,,,self.driver.get (“https://www.baidu.com/")   ,,,assert “百度一下“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 发现!”not  self.driver.page_source拷贝   #,才能在执行完各种测试用例方法之后会执行,为一个清理操作   def 才能拆卸(自我):   ,,,self.driver.close ()   if  __name__ ==,“__main__":   unittest.main才能()

执行上面的代码,将会返回如下信息:


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
跑1测试在2.914 s

值得注意的是,如果没有配置驱动,或者路径写错了,将会出现WebDriverException错误

<强>与网页互动

与一个网页进行的真正的交互,具体的说,与网页的HTML元素进行交互。如果需要与之交互,那么久必须要查找到HTML的元素.WebDriver提供了多种查找HTML元素的方法,例如,给定一个元素为:

& lt; input 类型=皌ext", name=皃asswd", id=皃asswd-id"/祝辞

我们可以使用下面任意方法查找到它:

element =, driver.find_element_by_id (“passwd-id")   时间=element  driver.find_element_by_name (“passwd")   element =, driver.find_element_by_xpath(“//输入[@ id=& # 39; passwd-id& # 39;]“)

如何正确的使用硒