资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
什么是 selenium?selenium 自动化测试工具,它主要是用于 Web 应用程序的自动化测试,但确定不只局限于此,同时支持全部基于 web 的治理任务自动化。selenium 经受了两个版本,selenium1.0 和 selenium2.0,selenium 也不是简洁一个工具,而是由几个工具组成,每个工具都有其特点和应用场景。Selenium IDE:Selenium GridSelenium RCSelenium 2.0Selenium RC 在扫瞄器中运行 JavaScript 应用,使用扫瞄器内置的 JavaScript翻译器来翻译和执行 selenese 命令selenese 是 selenium 命令集合。WebDriver 通过原生扫瞄器或者扫瞄器扩展直接把握扫瞄器。WebDriver 针对各个扫瞄器而开发,取代了嵌入到被测 Web 应用中的 JavaScript。与扫瞄器的严密集成支持创立更高级的测试,避开了 JavaScript 平安模型导致的限制。除了来自扫瞄器厂商的支持,WebDriver 还利用操作系统级的调用模拟用户输入。webdriver 供给了一系列的元素定位方法,常用的有以下几种:id,name,class name,tag name,link text,partial link text,xpath,css selector分别对应 Python Webdriver 中的方法为:find_element_by_link_text(“新闻“)find_element_by_partial_link_text(“新“)/局部模糊定位关键字肯定要唯一Xpath 定位用确定路径定位:find_element_by_xpath(“/html/body/div2/form/span/input“)当我们所要定位的元素很难找到适宜的方式时,都可以通过这种确定路径的方式定位,缺点是当元素在很多级名目下时,我们不得不要写很长的路径,而且这种方式难以阅读和维护。相对路径定位:find_element_by_xpath(“/inputid = ” input ” “)#通过自身的 id 属性定位find_element_by_xpath(“/spanid= ”input-container” /input“)#通过上一级名目的 id 属性定位find_element_by_xpath(“/divid= ”hd” /form/span/input“)#通过上三级名目的 id 属性定位find_element_by_xpath(“/divname= ”q” /form/span/input “)#通过上三级名目的 name 属性定位通过上面的例子,我们可以看到XPath 的定位方式格外机敏和强大的,而且XPath 可以做布尔规律运算,例如:/divid=” hd ” or name=” q ” 固然,它的缺陷也格外明显:1、性能差,定位元素的性能要比其它大多数方式差;2、不够强健,XPath会随着页面元素布局的转变而转变;3. 兼容性不好, 在不同的扫瞄器下对XPath 的实现是不一样的。操作测试对象:Webdriver中比较常用的操作元素的方法有下面几个: clear去除元素的内容send_keys在元素上模拟按键输入click单击元素submit提交表单submit()要求提交对象是一个表单,更强调对信息的提交。click()更强调大事的独立性。比方,一个文字链接就不能用 submit()方法。WebElement 接口常用方法WebElement 接口除了我们前面介绍的方法外,它还包含了别的一些有用的方法。下面,我们例举几个比较有用的方法。size 返回元素的尺寸。例:#返回百度输入框的宽高size = driver.find_element_by_id(“kw“).size print sizetext 猎取元素的文本例:#返回百度页面底部备案信息text = driver.find.element_by_id(“cp“).text print textget_attribute(name) 猎取属性值例:#返回元素的属性值,可以是 id、name、type 或元素拥有的其他任意属性attribute = driver.find_element_by_id(“kw“).get_attribute(” type ”) print attribute 这个方法在定位一组数据时将变得格外有用is_displayed() 设置该元素是否用户可见 例:#返回元素的结果是否可见,返回结果为 True 或 False result = driver.find_element_by_id(“kw“).is_displayed() print result鼠标大事:实际的 web 产品测试中觉察,有关鼠标的操作,不单单只有单机, 有时候还用到右击,双击,拖动等操作,这些操作包含在 ActionChains 类中。ActionChains 类鼠标操作的常用方法:context_click()右击double_click()双击drag_and_drop()拖动move_to_element()鼠标悬停在一个元素上click_and_hold()按下鼠标左键在一个元素上鼠标右击操作:context_click()右键点击一个元素 例:#引入 ActionChains 类fromselenium.webdriver mon.action_chainsimportActionChains.#定位到要右击的元素right = driver.find_element_by_xpath(“XX“)#对定位到的元素执行鼠标右键操作ActionChains(driver).context_click(right).perform()ActionChains(driver):driver:webdriver 实例执行用户操作。ActionChains 用于生成用户的行为:全部的行为都存储在 ActionChains 对象。通过perform()执行存储的行为。perform():执行全部 ActionChains 中存储的行为。perfrom()同样也是ActionChains 类供给的方法,通常与 ActionChains()协作使用。键盘大事:有时候我们在测试时需要使用tab 键将焦点转移到下一个元素,用于验证元素的排序是否正确。webdriver 的 keys()类供给键盘上全部按键的操作,甚至可以模拟一些组合键的操作,如 Ctrl+A,Ctrl+C/Ctrl+V 等。在某些更简单的状况下,还会消灭使用 send_keys 来模拟上下键来操作下拉列表的状况。代码例如:打印信息通常我们可以通过获得页面的 title、URL 地址,页面上的标识性信息如: 登录成功的“欢送,XXX”信息来推断用例执行成功。在实际测试中,访问 1 个页面然后推断其 title 是否符合预期是很常见的一个用例,假设一个页面的 title 应当是“百度一下”,那么用例可以这样描述:访问该页面,推断页面 title 是否等于“百度一下”。猎取当前 URL 也是格外重要的一个操作,在某些状况下,你访问一个 URL, 这时系统会自动对这个 URL 进展跳转,这就是所谓的“重定向”。一般测试重定向的方法是访问这个 URL,然后等待页面重定向完毕之后,猎取当前页面的 URL,推断该 URL 是否符合预期。假设页面的 URL 返回不正确,而表示当前操作没有进展正常的跳转。例如代码:设置等待时间:sleep():设置固定休眠时间。Python 的 time 包供给了休眠方法 sleep(),导入time 包后就可以使用 sleep()进展脚本的执行过程进展休眠。implicity_wait():是 webdirver 供给的一个超时等待。等待一个元素被觉察,或一个命令完成。假设超出了设置时间那么抛出特别。WebDriverWait():同样也是 webdirver 供给的方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,假设超过设置时间检测不到那么抛出特别。代码如下:定位一组元素复选框:WebElement 接口同样供给了定位一组元素的方法find_elements。定位一组对象一般用于以下场景:批量操作对象,比方将页面上全部的 checkbox 都勾上先猎取一组对象,再在这组对象中过滤出需要具体定位的一些对象。比方定位出页面上全部的 checkbox,然后选择最终一个。例如代码:importos os.path.abspath()os 模块为 Python 语言标准库中的os 模块包含普遍的操作系统功能。主要用于操作本地名目文件。path.abspath()方法用于猎取当前路径下的文件。另外脚本中还使用到 for 循环,对 inputs 猎取的一组元素进展循环,在 Python 语言中循环变量input可以不用事先声明直接使用。OL css =4?+N!F)EU8,57+N)EC“.!“+NC)E-A+Nlen()len $ Python JH#C=UB&M/!“1KCP3S6“.!“)E运行打印信息:
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号