美文网首页
Selenium webdriver定位失败的常见原因

Selenium webdriver定位失败的常见原因

作者: 爱吃葡萄冰的鲸 | 来源:发表于2017-10-05 20:10 被阅读59次
    1. 定位值写错,比如ID,classname,xpath或者css没有写对。
      解决1:使用浏览器检查工具获取xpath值,再用Xpath Finder验证是否存在;
      解决2:使用浏览器console输入“document.getElementsBy**” 验证是否存在。
    2. 定位的元素在iframe中,需要切换到iframe才能定位成功。
      解决:使用switch_to_iframe()方法,切换到相应的iframe。
    3. 页面发生跳转,当前driver网址和跳转后的网址不一致,即要定位的元素在跳转后的页面,而driver还是跳转前的页面。
      解决1:
    # 0.获取当前页面的句柄值
     m0= driver.window_current_handle
    # 1.点击链接后,打开新页面(假设是打开新的标签页)
    # 2.等待新页面加载完成(新handle生成后)
    while True:
        m = driver.window_handles
        if len(m)>1:
            break
    判断句柄数量,如果大于1,表示新页面加载完成
    # 3.获取所有的页面句柄
    m = driver.window_handles
    # 4.获取新页面句柄
    for x in m:
      if x != m0:
    handle_new = x
    # 5.跳转新页面
    driver.switch_to_window(handle_new)
    

    解决2:
    如果打开多个浏览器句柄和标签页的对应关系:标签页顺序(按照打开顺序):1 2 3 4 5,对应的句柄:0 4 3 2 1,依次类推。

    browser.switch_to_window(browser.window_handles[0])
    browser.title  #第一个页面
    browser.switch_to_window(browser.window_handles[1])
    browser.title  #最后一个页面
    
    1. 定位尽量找固定的元素,有些元素会根据用户ip,语言等显示不同的内容,导致定位失败。

    2. DOM移除了那些元素之后,指针还在,但是指针指向的text就取不到了。

    相关文章

      网友评论

          本文标题:Selenium webdriver定位失败的常见原因

          本文链接:https://www.haomeiwen.com/subject/wgukyxtx.html