简介 目录 评价 推荐
  • weibo_Cherish_眷戀_0 2022-01-09

    1、绝对路径和相对路径的区别


    2、单斜线和双斜线的区别


    3、有什么不同的方法来写xpath?哪一个最好最快?

    1)当存在id或name,且唯一,用id或name查找

    2)css

    3)xpath

    0赞 · 0采集
  • 慕容8334558 2020-05-15

    定位速度:ID>name>css>xpath

    0赞 · 0采集
  • 慕函数7512283 2020-05-05

    面试问题:

    绝对路径和相对路径的区别?

    单斜线和双斜线的区别?

    有什么不同的方法来写xpath?哪一个最好?或最快?

    0赞 · 0采集
  • 慕仔5265905 2019-05-23
    1. 绝对路径和相对路径

    2. 单斜线和双斜线的区别

    3. 有什么不同的方法来写xpath?哪一个最好?或最快?

    0赞 · 0采集
  • weibo_游先生灬_0 2018-10-17

    第三章笔记:

    XPath定位元素

    • 一、有效的XPath。

    语法://tag[@attribute='value']       <**1、单引号2、区别在css选择器中:用>和不用@*>

    绝对路径:用单右斜线/               <**从根标签<html>开始,用单右斜线/,弊端在中间有一个的标签tag变更的话就需要修改。*>

    相对路径:用双右斜线//              <**用双右斜线//先找到一个唯一id的元素,再用右斜线继续查找,比绝对路径精短了,如果用双右斜线//也可以避免中间的标签变化。*>

    单右斜线:是在紧跟着的下一级子菜单操作。

    双右斜线:是在任意一个子菜单操作。

    例子1:

    <input type="button" value="登录" class="js-signup-btn moco-btn moco-btn-red moco-btn-lg xa-login">

    XPath定位元素:

    错误示范://input[@class='js-signup-btn']      ---->查找到元素0个元素。

    正确示范://input[@class='js-signup-btn moco-btn moco-btn-red moco-btn-lg xa-login']      ---->查找到元素1个元素。  

    <**找到标签<input>其class为js-signup-btn的元素,因为是等于号,id必须完全一致(后面用text()也是要完全一致,有空格也要空格一致)。*>

    • 二、用text()构建有效的XPath。

    语法://tag[text()='value']  <**text()是标签之间的文字<h1>哈哈</h1>*>

    例子2:

    <a href="/user/newforgot" class="rlf-forget r" target="_blank" hidefocus="true">忘记密码 </a>

    XPath定位元素:

    错误示范://a[text()='忘记密码']      ---->查找到元素0个元素。

    正确示范://a[text()='忘记密码 ']      ---->查找到元素1个元素。  <**找到标签<a>text为“忘记密码”的元素,因为是等于号,必须完全一致,有空格也要空格一致;text不用@符号。使用单引号。*>

    • 三、用Contains关键字构建有效的XPath。

    语法:①//tag[contains(attribute,'value')]  <**contains含有属性attribute值的value值的元素*>

    ②用到两个contains的例子见例子4。

    例子3:

    <p>用例2的HTML代码。</p>

    XPath定位元素:

    错误示范://a[contains(text(),'忘记密码')]      ---->查找到元素1个元素。

    正确示范://a[contains(text(),'忘记密码 ')]      ---->查找到元素1个元素。

    正确示范://a[contains(text(),'忘记密码 ')]      ---->查找到元素1个元素。  <**找到标签<a>属性text含有“忘记密码”的元素,contains()里面用逗号和使用单引号。*>

    例子4:

    <input type="text" value maxlength="37" name="email" class="xa-emailOrPhone ipt ipt-email js-own-name" placeholder="请输入登录邮箱/手机号">

    XPath定位元素:

    正确示范://input[contains(@class,'ipt') and contains(@placeholder,'手机号')]      ---->查找到元素1个元素。  <**找到标签<input>属性class含有“ipt”的元素和同时满足属性placeholder含有“手机号”的元素,contains()里面用逗号和使用单引号,用and连接。*>

    • 四、用starts-with关键字。

    语法://tag[starts-with(attribute,'value')]  <**属性attribute值以value值为开头的元素*>

    <input type="text" value maxlength="37" name="email1" class="xa-emailOrPhone ipt ipt-email js-own-name" placeholder="请手机号">
    <input type="text" value maxlength="37" name="email2" class="ipt ipt-pwd js-login-pwd" placeholder="请登录邮箱">
    <input type="text" value maxlength="37" name="email3" class="ipt ipt-verify l" placeholder="请登录邮箱/手机号">

    要求定位到第一条。

    错误示范://input[starts-with(@class,'ipt')]      ---->查找到元素2个元素。 

    正确示范://input[starts-with(@class,'xa-emailOrPhone')]      ---->查找到元素1个元素。  <**找到标签<input>属性class含有“ipt”的元素,用ipt开头查找时会有后两个的input,所以用xa-emailOrPhone在开头的样式(确实就是写在class引号(“”)里面的前边的位置的原因)可以使用starts-with的方法查找元素*>

    • 五、通过一个xpath路径寻找。

    <p>因为这个标签没有明显的class、id、text等属性的时候,使用向父级查找,向上或向下的平级查找来确认元素。</p>

    5.1通过一个xpath路径寻找父节点。

    语法:已定位的xpath元素//parent::tag

    5.2通过一个xpath路径寻找前面平级节点。

    语法:已定位的xpath元素//preceding-sibling::tag

    5.3通过一个xpath路径寻找后面平级节点。

    语法:已定位的xpath元素//following-sibling::tag

    <**注意:1、已经定位到的元素后面写//双右斜线^_^。2、::后面不要带尖括号<>而是直接写标签td。3、平级的前后是数组,向前:[3][2][1][我],向后:[我][1][2][3],离我近的是[1]。*>

    六、练习:

    答案://div[@id='zc_k']//td[text()='中国银行']//following-sibling::td

    <**相对路径用了双右斜线//,div到td中间的路径用了双右斜线//呐^_^,最后一个是平级向下查找td,td等标签可写成数组td[ ]样式*>

    答案:问:有什么不同的方法来写XPath?哪一个最好?或最快?

    答:XPath有@【id、@class、text()、contains()、starts-with、无明显属性时的用已定位的路径的父级或平级的方法】等方法来书写XPath查找元素。

    最好是css\id\class\name?查找元素时,如果id的元素是唯一的,用id是最快的;如果name唯一,也可以用name,也行也快,然后是css,如果最后都定位不到元素的话,那就用XPath来定位。没有唯一的id\name之类的,就用XPath来定位。XPath虽然能慢一点,但是肯定能定位到元素。

    (小言:用id、class定位的方法【findElement(By.className("js-signup-btn"))的方法,不是XPath方法,是这个意思吧?我的理解了~~~所有不对的望指教^_^】,XPath为什么不优先呢?就是……百度吧……)


    3赞 · 1采集
  • 慕瓜8064208 2018-07-06
    111
    截图
    0赞 · 0采集
数据加载中...
开始学习 免费