zoukankan      html  css  js  c++  java
  • selenium等待的三种方式和排查定位的步骤

    做UI自动化时会遇到服务环境不稳定、网络环境不稳定,访问一个页面要加载好久都没出来,导致页面还没有打开就报错了,这时用到等待
    等待有三种方式:
    普通人用time等待(最不可取)
    聪明人用隐式等待 driver.implicitly_wait()
    # 隐式等待是针对整个项目的,driver生成的时候写一遍就行了,写在get之后,不建议使用
    大神用显示等待 WebDriverWait
    # from selenium.webdriver.support.wait import WebDriverWait
    # from selenium.webdriver.support import expected_conditions as EC
    # 不间断扫描dom,保证元素第一次出现后,不再做无谓的等待,如果用time就会比较死,按照规定的时间等待

    WebDriverWait(driver, 10, 1).until(EC.presence_of_element_located((By.ID, 'i1')))  # 了解until
    EC.presence_of_element_located((By.ID,'i1'))  # 判断以ID形式定位的元素是否出现在dom树中,返回true or false,until里面如果是true就继续执行,如果是false过1秒后再次判断EC.presence_of_element_located((By.ID, 'i1'))是true还是false,当超过10秒时整体WebDriverWait会报一个TimeoutException

    当你遇到一个定位不到的问题,怎么去排查:
    1、分清html,看清楚哪些是我们要用的唯一属性
    2、看清父子级关系
    3、有没有浏览器的tab要切换
    4、排查有没有iframe
    5、排查这元素在代码调用打开时,页面是否渲染了
    6、排查你定位的元素是否有display
    7、不用显示等待,用time调式方式,确保元素可以点击
    8、看你的操作是不是需要连贯的操作
    9、考虑是不是我的定位方式写错了

  • 相关阅读:
    Java中last_insert_id的使用
    Java上传视频
    Java创建Excel-DEMO
    导出excel表格
    Java导入excel并保存到数据库
    Java基础13一异常
    Java基础12一IO流
    腾讯云-等保要求
    云安全等保项目服务内容及云安全产品清单-(腾讯云部分)
    《网络风险及网络安全》培训总结
  • 原文地址:https://www.cnblogs.com/laosun0204/p/9073103.html
Copyright © 2011-2022 走看看