码迷,mamicode.com
首页 > 其他好文 > 详细

selenium总结(持续更新)

时间:2017-11-01 11:05:32      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:tor   elements   print   tag   name   处理   语句   else   调试   

1.怎么 判断元素是否存在?

如果这个元素不存在, 就会抛出NoSuchElementException,可以通过使用try catch,如果catch到NoSuchElementException 然后返回false


也可通过定义函数的方法来判断元素是否存在

 1 def is_element_exist(css):
 2     
 3     element = driver.find_element_by_css_selector(css_selector=css)
 4     if len(element) == 0:
 5         print "元素未找到: %s" % element
 6         return False
 7     elif len(element) == 1:
 8         return True
 9     else:
10         print "找到%s个元素: %s" %(len(element), css)
11         return False

2.如何判断元素是否出现?

判断元素是否出现,存在两种情况,一种是该元素本来就没有;另外一种是有该元素,但状态为hidden

可以通过先判断是否存在,如果不存在返回false;如果存在再去判断是否displayed

if 元素不存在:
    return False
else:
    if 元素隐藏:
        通过执行js语句去除hidden属性
    else:
        执行定位语句

3.元素下拉框的选择

有以下两种情况:、

(1)select标签组成的下拉选项,直接可以通过相应的API定位

(2)下拉菜单是通过JS实现的,此时需要控制鼠标的行为,比如clickandhold后然后再定位目标元素

4.selenium有几种定位方法

记住“一二三”,即:

一:by_id,此方法最为快捷

二:by_link, by_partial_link

三:by_name, by_class_name, by_tag_name

当然还有css_selector, xpath,这两种定位的效率更高

后期脚本优化时,可以采用js语句替换这些定位方法,此时不仅效率高,而且有利于出现问题时进行调试

5.处理动态变化的元素

(1)通过相对位置,找到不变化的元素

(2)find_elements遍历

6.脚本的效率优化

(1)用js语句替换定位语句

(2)尽量少用sleep, implicitywait,用显示的webdriverwait等待元素

 

selenium总结(持续更新)

标签:tor   elements   print   tag   name   处理   语句   else   调试   

原文地址:http://www.cnblogs.com/milian0711/p/7765373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!