selenium总结(持续更新)

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等待元素

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