zoukankan      html  css  js  c++  java
  • 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等待元素

  • 相关阅读:
    神经网络
    密度峰值聚类
    kylin从入门到实战:实际案例
    [时间序列分析][3]--自相关系数和偏自相关系数
    时间序列分析之指数平滑法(holt-winters及代码)
    时间序列模型
    python3.5如何安装statsmodels包?
    时间序列分析和预测
    Xshell6和Xftp6 破解免安装版,无窗口多开限制
    优化问题
  • 原文地址:https://www.cnblogs.com/milian0711/p/7765373.html
Copyright © 2011-2022 走看看