2016.9.20 automation 总结

回顾下小本年用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 元素。 

未完待续。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容