在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况,一般可以从以下几个方面着手解决:

1、Frame/Iframe原因定位不到元素:

  这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。

2、Xpath描述错误原因:

这种情况有可能是:

1、xpath语法规则书写错误,这个木有办法,补下xpath的语法,多写写,练练就好。

2、xpath层极太长,容易犯晕,比如我就写过://div[@id='mainBody']//div[1]//div[1]//div[1]//div[1]//div[1]//div[1]//div[2]//ul[1]//li[1]//a[1]

虽然最后还是调对了,调试的时候就是一层一层的定位,这种方法比耗时,但好在还算管用。

最终的方法还是要提高下写xpath的水平(LZ目前只会点简单的xpath语法,得恶补下)。

3、页面还没有加载出来,就对页面上的元素进行的操作:

这种情况一般说来,可以设置等待,等待页面显示之后再操作,这与人手工操作的原理一样:

1、设置等待时间;缺点是需要设置较长的等待时间,案例多了测试就很慢;

2、设置等待页面的某个元素出现,比如一个文本、一个输入框都可以,一旦指定的元素出现,就可以做操作。

3、在调试的过程中可以把页面的html代码打印出来,以便分析。

转载于:https://www.cnblogs.com/python-selenium/p/3880809.html

为什么selenium定位不到元素相关推荐

  1. selenium定位弹框元素

    selenium定位弹窗元素 一. 弹出框是alert类型: selenium提供switch_to_alert方法:捕获弹出对话框(可以定位alert.confirm.prompt对话框) aler ...

  2. selenium定位不到元素的原因。

    今天搞爬虫的时候,发现元素怎么也定位不到,弄了一中午,最后总算搞定了.所以今天写一下关于定位不到元素的原因. 1.  定位语句错误,对于定位语句是否错误可以尝试换一种定位方法. 2.  存在frame ...

  3. python xpath定位不到_Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)...

    #coding=utf-8 '''Created on 2016-7-20 @author: Jennifer Project:登录百度账号 ''' from selenium importwebdr ...

  4. Selenium定位不到元素的解决方法—iframe挡住了去路

    刚接触Selenium,在调试过程中发现有些元素定位不到,于是求助了百度,查找到的资料是这么说的:如果需要定位的元素在某个frame里,则单独通过id/name/xpath是定位不到此元素的.比如,原 ...

  5. selenium 定位不到元素总结

    元素在网页上,却会出现定位不到的情况的分析. 1. 定位不正确. 2. 页面还没有加载完就去查找元素了. 3. 有遮罩层. 首先说下第3点. 先前在公司遇到过这样的问题. 页面是显示出来了, 这个元素 ...

  6. 关于selenium的8种元素定位

    selenium中有八种元素定位,分别是:id,name,class_name,tag_name,link_text.partial_link_text.xpath.css 简单的定位可以用id.na ...

  7. python元素定位id和name_Python Selenium定位html元素|find_element_by_class-name-id-tag-css-xpath-text...

    Selenium官方给了八种定位方法 1.find_element_by_class_name通过class name定位元素 我们拿Pythonfree网站来举例,点击右上角的搜索框. 鼠标右击搜索 ...

  8. python selenium定位元素方法,python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome ...

  9. python元素定位input button_python+selenium 定位到元素,无法点击的解决方法

    报错 selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (234.75 ...

  10. Selenium定位HTML元素(Python)

    本篇不是介绍通过各种方法(id, name, tag_name, css, xpath等)定位HTML各元素的普及性文章,网络上各种文档和博客介绍得均比较全面.这里只是将自己实践中,遇到的个别问题及解 ...

最新文章

  1. bzoj 1028: [JSOI2007]麻将
  2. jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能
  3. Spring MVC控制器JUnit测试
  4. 心学 禅宗_禅宗宣言,用于有效的代码审查
  5. mysql如何查看dbid_如何获得数据库的DBID
  6. 首个谷歌TensorFlow安全风险被腾讯找到:攻击成本低、迷惑性强
  7. asp.net中的validaterequest属性与安全性
  8. Codeforces Round #466 (Div. 2): E. Cashback(单调队列+DP)
  9. Linux内核memcpy的不同实现
  10. 使用GreenSock插件轻松制作精美的Web动画
  11. hive sql 添加字段以及修改字段
  12. html浏览器图片不显示图片,教你网页图片显示不出来怎么办
  13. html设置列表编号起始值,Word多级编号怎么设置,要按我的要求作为起始值?
  14. cmake: 使用jom实现msvc工程并发编译提高速度(-j)
  15. Python 批量修改文件名称
  16. Vue入门练习:小王记事本
  17. 进入一种全新的“区块链”思维方式,对我们的生活有什么影响?
  18. 发一份魔兽改键工具的代码,vc6.0环境,带聊天模式识别功能
  19. 狂神说Java CSS3讲解综合代码
  20. 单源最短路径(spfa,Dijkstra, bellman-ford)

热门文章

  1. Android中的短信收不到问题
  2. Linux内核源码分析--内核启动之(2)Image内核启动(汇编部分)(Linux-3.0 ARMv7)
  3. python面值组合_算法题 - 拼凑面额 - Python
  4. 浮点数例外 (核心已转储)_年仅21岁出场过百重新定义边后卫,克洛普把阿诺德打造成进攻核心...
  5. docker容器的常用命令以及访问tomcat报404的解决方法(二)
  6. 【渝粤教育】电大中专门店销售与服务技巧 (2)作业 题库
  7. Django 高级(其他知识点)
  8. 青蛙学Linux—CentOS 6.10的安装
  9. VC++常用数据类型
  10. CLR via C# ver4.0 读书笔记