美文网首页
2016.9.20 automation 总结

2016.9.20 automation 总结

作者: 流浪骑士 | 来源:发表于2016-09-20 18:00 被阅读54次

    回顾下小本年用selenium, python 做automation的小结吧。
    都是些小点点。

    1. 通过获取父类的text值来得到其子类的text值:parent_ele.text 要注意如果某个子元素的text值为空, 获取到的text字符串值不会为空的子元素保留值占位符。
      如下面所示,tr下面总共有三个td,应该获得三个td的值,但是假设第二个td的值为空,那么总共得到的text值长度为二。 所以如果想使用这种方法获取每个td的值的时候要小心。
      举例:
      如下所示,
      print context = row_element.text
      print(len(context.split('\n')))

    Console:

    11233\n1 day\n
    2
    java
    

    code:

    <tbody>
      <tr>
        <td><b>11322</b> </td>
        <td></div></div> </td>
        <td><div><div>1 day</div></div></td>
      </tr>
    </tbody>
    
    1. 隐藏的元素,虽然是exists的,但是通过text得到的值为空。
    2. 使用selenium 获取的元素的text都是字符串,所以在比较期望的值的时候,注意值的数据类型。
    3. 总结一些定位元素的知识
      若遇到测试对象很多都是用的动态id或者class,或者没有唯一属性可以定位,会为automation带来困难。 所以要学会通过兄弟找到自己或者通过父亲找到自己等一些技巧。

    starts-with ,查找指定属性前缀的元素

    xpath='//*[starts-with(@id,"reservation")]'
    

    通过父类元素获得子元素 ./

    name_xpath = './td[1]'
    parent.getElementByXpath(name_xpath)
    

    多个属性来定位元素

    xpath='//*[starts-with(@id,"vcacPagingToolbar") and @class="x-box-inner"]/div/div[last()]/../a[3]'
    

    ../查找当前元素上级,有兄弟或者子孙定位元素

    delete_detail_hidden = '//table[@aria-hidden="true"]//*[text()="Cannot delete reservation policy:"]/../../../tr[2]/td/div'
    

    xpath的谓语

    /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。 
    /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。 
    /bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 
    

    未完待续。。。。

    相关文章

      网友评论

          本文标题:2016.9.20 automation 总结

          本文链接:https://www.haomeiwen.com/subject/nkdoettx.html