• 关于selenium自动化元素定位问题解决的几种方法


    遇到了元素定位问题和定位到后无法执行点击操作等,闲话少说,直奔主题:

    1.元素定位不到一般有如下3种情况,大家如果遇到了可以对号入座哈

    a.查找的元素不在当前窗口中

    解决方法:使用driver.switch_to.window()进行窗口的切换,一般在多个窗口时,使用切换到最后一个窗口就可以了

    首先获取到当前所有的窗口 all_win = driver.window_handles

    然后切换到最后一个窗口即可 driver.switch_to.window(all_win[-1]) 或 driver.switch_to.window(driver.window_handles[-1])

    注:一般新打开的窗口都是最后一个,直接用[-1]下标即可,获取当前窗口句柄用driver.getWindowHandle()

    b.当前元素不在当前页面,而是在frame或Iframe框架中

    解决方法:首先查看元页面,查看是否有frame或iframe标签,也可以直接编码使用 frame_names = find_elements_by_tag_name('iframe') 或 (‘frame’)进行元素查找,并放到frame_names列表变量中

    然后使用 driver.switch_to.frame(frame_names[0]) 切换到 第一个frame 框架中,根据 frame_names的长度,索此由0开始,到len(frame_names)-1个frame,如果切换到最后一个frame直接使用rame_names[-1]下标即可

    此时再用 driver.find_element_by_xxx方法定位元素就可以定位到了。

    注:在多层嵌到的iframe中可以使用 driver.switch_to.parent_frame() 切换到上一层iframe,也可以用driver.switch_to.default_content()切换到主页面中

    c.页面加载慢,还没有加载完成就对元素进行定位

    解决方法:使用sleep或webdriverwait等显示等待设置等待时间后再进行元素的定位

  • 相关阅读:
    CSS命名规范
    css的img移上去边框效果及CSS透明度
    css动画之波纹
    css翻页样式
    关于Chrome的开发15个小技巧
    css三角形
    css限制图片大小,避免页面撑爆
    网易2016研发project师笔试题
    遇到 Form 性能问题怎么办 performance issue
    一个美丽的java烟花程序
  • 原文地址:https://www.cnblogs.com/oscarforever/p/11573943.html
Copyright © 2020-2023  润新知