python webdriver元素定位-计算机技术资料.docxVIP

python webdriver元素定位-计算机技术资料.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件测试联盟: HYPERLINK – 致力于软件测试领域知识传播 软件测试联盟: HYPERLINK – 致力于软件测试领域知识传播 自动化想要模拟用户的行为操作,首先需要识别并定位UI上的元素,而每个元素都有特定的属性来标识自己,webdriver就是通过元素特定的属性来进行定位的。 注:唯一的特定的属性是定位元素的标识!!! 我们可以通过下面的一些属性或方法来识别、定位元素。 使用xpath定位 在高的级别上,尽可能的使用一个浏览器原生的webdriver?XPath?的功能。在一些没有本地的XPath支持的浏览器,我们已经提供了我们自己的实现。这可能会导致一些意想不到的行为,除非你知道各种XPath引擎的差异。 驱动 标签和属性名称 属性值 本地的XPath支持 HtmlUnit?Driver 小写 当他们出现在HTML 是 Internet?Explorer?Driver 小写 当他们出现在HTML 没有 Firefox?Driver 不区分大小写 当他们出现在HTML 是 这点抽象,对于下面这段HTML?代码来说: Html片段: input type=text name=example / INPUT type=text name=other / inputs = driver.find_elements_by_xpath(//input) 或者 from mon.by import By inputs = driver.find_elements(By.XPATH, //input) 不同驱动对大小写的支持: XPath?expression HYPERLINK /docs/03_webdriver.jsp \l htmlunit-driver HtmlUnit?Driver HYPERLINK /docs/03_webdriver.jsp \l firefox-driver Firefox?Driver HYPERLINK /docs/03_webdriver.jsp \l internet-explorer-driver Internet?Explorer?Driver //input 1?(“example”) 2 2 //INPUT 0 2 0 HTML元素有时并不需要显式地声明,因为他们默认为已知值的属性。例如,“input”的标签并不需要的“type”属性,因为它默认为“text”。webdriver使用XPath时,你不应该期望能够对这些隐含的属性相匹配。 1.2 使用id定位 这是最有效、最优选的定位方式,但最大的问题在于开发人员时常不为元素设置唯一的id或是动态的生成id,在自动化的过程应与开发人员进行交互,避免这类情况的发生。 下面看看如何通过id方式来进行定位: 这是我们要定位的html片段: div id=myId.../div element = driver.find_element_by_id(myId) 或者 from mon.by import By element = driver.find_element(by=By.ID, value=myId) 1.3 使用name定位 这是另外一种最有效、最优选的定位方式,但最大的问题在于开发人员时常不为元素设置唯一的id或是动态的生成name,在自动化的过程应与开发人员进行交互,避免这类情况的发生。 下面看看如何通过name方式来进行定位: Html片段: input name=myName type=text/ cheese = driver.find_element_by_name(myName ) 或者 from mon.by import By cheese = driver.find_element(By.NAME, myName ) 1.4 使用css定位 通过CSS的定位策略。默认情况下本机浏览器支持CSS定位,所以,请参考W3C?CSS选择器 /TR/CSS/#selectors?显示一般可用的CSS选择器的列表。如果浏览器没有原生支持CSS查询,可以使用 Sizzle(Sizzle是一个纯javascript?CSS选择器引擎)。目前,IE?6,7和FF3.0使用Sizzle的CSS查询引擎。 注意:不是所有浏览器对CSS的支持都是一样的,可能在一个浏览器中运行良好,切换到另一个浏览器则不然。 具体用法如下: Html片段: div id=food span class=dairy牛奶/span span class=dairy aged奶酪/span /div cheese = driver.find_element_by_css_selector(#food span.dairy.a

文档评论(0)

kolr + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档