HTML+CSS入门 Robotframework中的元素locator[xpath和CSS]
沉沙 2018-10-19 来源 : 阅读 2844 评论 0

摘要:本篇教程介绍了HTML+CSS入门 Robotframework中的元素locator[xpath和CSS],希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门。

本篇教程介绍了HTML+CSS入门 Robotframework中的元素locator[xpath和CSS],希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门。

<

1:通过ID
2:通过Name
3:通过xpath
   3.1 通过xpath的绝对路径,从最外层开始找
       例如/html/body/div[1]/div[4]/div[2]/div/form/span[1]/input
   3.2 通过xpath的相对路径
       3.2.1 找元素本身
       xpath同样可以利用元素自身的属性, 例如 xpath=//*[@id=‘kw1‘]
       //表示某个层级下,*表示某个标签名,@id=kw1表示这个元素有个id等于kw1
       也可以指定标签名, 例如 xpath=//input[@id=‘kw1]
       元素本身可以利用的属性不局限于id或者name,例如: xpath=//input[@type=‘text‘]     
       xpath=input[@autocomplete=‘off‘]
       3.2.2 通过元素的上级找到元素
       Xpath=//span[@id=‘aa‘]/span/input
       3.2.3 布尔值写法
       通过布尔值用多个属性确定一个元素,例如 xpath=//span[@id=‘aa‘ and @name=‘bb‘]
       3.2.4 contains用法
       [contains(@attribute, string)]
       如: 使用xpath的匹配功能,//input[contains(@id,‘nt‘)]

    Xpath的相关所有知识://www.w3school.com.cn/xpath/xpath_syntax.asp 
 
xpath表示方法:

username=driver.find_element_by_xpath("//form[input/@name=‘username‘]")(form有input子元素,该子元素有name属性)username=driver.find_element_by_xpath("//form[@id=‘loginForm‘]/input[1]")

username=driver.find_element_by_xpath("//input[@name=‘username‘]")

clear_button=driver.find_element_by_xpath("//input[@name=‘continue‘][@type=‘button‘]")  (input元素有name以及type两个属性)


 
xpath知识相关网站:
//www.w3schools.com/
https://www.w3.org/TR/xpath/
//www.zvon.org/comp/r/tut-XPath_1.html
 
用于查看xpath的插件:

    XPath Checker - suggests XPath and can be used to test XPath results.
    Firebug - XPath suggestions are just one of the many powerful features of this very useful add-on.
    XPath Helper - for Google Chrome

4: 通过css path

   4.1Css path的知识: //www.w3school.com.cn/cssref/css_selectors.asp
//saucelabs.com/resources/articles/selenium-tips-css-selectors
   4.2Css选择器知识【适用于chrome->console】
      Css选择器布尔值写法:
      and-> "[alt=‘no column layout‘]|[src=‘/Images/nocol.png‘]"
  - 选择alt属性为‘no column layout‘以及src属性为/Image/nocol.png 的元素。     
选择器 例子 例子描述 CSS
.class  .intro  选择 class="intro" 的所有元素。  1
#id  #firstname  选择 id="firstname" 的所有元素。  1
*  *  选择所有元素。  2
element  p  选择所有 <p> 元素。  1
element,element  div,p  选择所有 <div> 元素和所有 <p> 元素。  1
element element  div p  选择 <div> 元素内部的所有 <p> 元素。  1
element>element  div>p  选择父元素为 <div> 元素的所有 <p> 元素。  2
element+element  div+p  选择紧接在 <div> 元素之后的所有 <p> 元素。  2
[attribute]  [target]  选择带有 target 属性所有元素。  2
[attribute=value]  [target=_blank]  选择 target="_blank" 的所有元素。  2
[attribute~=value]  [title~=flower]  选择 title 属性包含单词 "flower" 的所有元素。  2
[attribute|=value]  [lang|=en]  选择 lang 属性值以 "en" 开头的所有元素。  2
:link  a:link  选择所有未被访问的链接。  1
:visited  a:visited  选择所有已被访问的链接。  1
:active  a:active  选择活动链接。  1
:hover  a:hover  选择鼠标指针位于其上的链接。  1
:focus  input:focus  选择获得焦点的 input 元素。  2
:first-letter  p:first-letter  选择每个 <p> 元素的首字母。  1
:first-line  p:first-line  选择每个 <p> 元素的首行。  1
:first-child  p:first-child  选择属于父元素的第一个子元素的每个 <p> 元素。  2
:before  p:before  在每个 <p> 元素的内容之前插入内容。  2
:after  p:after  在每个 <p> 元素的内容之后插入内容。  2
:lang(language)  p:lang(it)  选择带有以 "it" 开头的 lang 属性值的每个 <p> 元素。  2
element1~element2  p~ul  选择前面有 <p> 元素的每个 <ul> 元素。  3
[attribute^=value]  a[src^="https"]  选择其 src 属性值以 "https" 开头的每个 <a> 元素。  3
[attribute$=value]  a[src$=".pdf"]  选择其 src 属性以 ".pdf" 结尾的所有 <a> 元素。  3
[attribute*=value]  a[src*="abc"]  选择其 src 属性中包含 "abc" 子串的每个 <a> 元素。  3
:first-of-type  p:first-of-type  选择属于其父元素的首个 <p> 元素的每个 <p> 元素。  3
:last-of-type  p:last-of-type  选择属于其父元素的最后 <p> 元素的每个 <p> 元素。  3
:only-of-type  p:only-of-type  选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。  3
:only-child  p:only-child  选择属于其父元素的唯一子元素的每个 <p> 元素。  3
:nth-child(n)  p:nth-child(2)  选择属于其父元素的第二个子元素的每个 <p> 元素。  3
:nth-last-child(n)  p:nth-last-child(2)  同上,从最后一个子元素开始计数。  3
:nth-of-type(n)  p:nth-of-type(2)  选择属于其父元素第二个 <p> 元素的每个 <p> 元素。  3
:nth-last-of-type(n)  p:nth-last-of-type(2)  同上,但是从最后一个子元素开始计数。  3
:last-child  p:last-child  选择属于其父元素最后一个子元素每个 <p> 元素。  3
:root  :root  选择文档的根元素。  3
:empty  p:empty  选择没有子元素的每个 <p> 元素(包括文本节点)。  3
:target  #news:target  选择当前活动的 #news 元素。  3
:enabled  input:enabled  选择每个启用的 <input> 元素。  3
:disabled  input:disabled  选择每个禁用的 <input> 元素  3
:checked  input:checked  选择每个被选中的 <input> 元素。  3
:not(selector)  :not(p)  选择非 <p> 元素的每个元素。  3
::selection  ::selection  选择被用户选取的元素部分。  3

   4.2 Css在console中和在Rebotframework中的区别:
   -在rebotframework中: css=i[class^=‘x-icon‘]
   -在consonle中:$(‘i[class^="x-icon"]‘)

  
   4.3 * 通过jquery选择
   如: jquery=.active [title="Remove"]
   //www.w3school.com.cn/jquery/jquery_selectors.asp


   4.4Css选择器知识【适用于selenium语法】

*
 

通用元素选择器,匹配任何元素

E
 

标签选择器,匹配所有使用E标签的元素

.info
 

class选择器,匹配所有class属性中包含info的元素

#footer
 

id选择器,匹配所有id属性等于footer的元素

E,F
 

多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔

E F
 

后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔

E > F    

本文由职坐标整理发布,欢迎关注职坐标WEB前端HTML/CSS频道,获取更多HTML/CSS知识!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程