Selenium+Python(元素定位)剖析.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SeleniumPython(元素定位)剖析

什么是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/div[2]/form/span/input)当我们所要定位的元素很难找到合适的方式时,都可以通过这种绝对路径的方式定位,缺点是当元素在很多级目录下时,我们不得不要写很长的路径,而且这种方式难以阅读和维护。相对路径定位:find_element_by_xpath(//input[@id = input ]) #通过自身的id属性定位find_element_by_xpath(//span[@id= input-container ]/input) #通过上一级目录的id属性定位find_element_by_xpath(//div[@id= hd ]/form/span/input) #通过上三级目录的id属性定位find_element_by_xpath(//div[@name= q ]/form/span/input ) #通过上三级目录的name属性定位通过上面的例子,我们可以看到XPath 的定位方式非常灵活和强大的,而且XPath 可以做布尔逻辑运算,例如://div[@id= 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 size text (获取元素的文本)例: #返回百度页面底部备案信息 text = driver.find.element_by_id(cp).text print text get_attribute(name) (获取属性值)例: #返回元素的属性值,可以是id、name、type或元素拥有的其他任意属性 attribute = driver.find_element_by_id(kw).get_attribute( type ) print attribute (这个方法在定位一组数据时将变得非常有用) is_displayed() (设置该元素是否用户可见)例: #返回元素的结果是否可见,返回结果为True

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档