Selenium常见的无法定位到元素的原因

摘要:
如果发现它是一个动态id,建议使用xpath的相对路径方法来查找元素。

1.元素没有加载完成,就进行定位元素

设置等待:导入时间模块使用  time.sleep(5)

2.窗口切换  窗口句柄还处在上一个窗口,导致无法定位新窗口的元素。

Selenium常见的无法定位到元素的原因第1张

3.Frame原因定位不到元素

这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,

因此需要先定位到相应的frame,对那个页面里的元素进行定位。

Selenium常见的无法定位到元素的原因第2张

4.动态id定位不到元素

每次调用页面出现的元素的ID会动态随机分配。

如果发现是动态id,推荐使用xpath的相对路径方法查找到该元素。

5.二次定位,如弹出框登录  如百度登录弹出框登录百度账号,需先定位到百度弹出框,然后再定位到用户名密码登录。

6.不可见元素

加一个循环判断,找到可见元素(is_displayed())点击登录即可。

免责声明:文章转载自《Selenium常见的无法定位到元素的原因》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇嵌套查询进程间通信 Queue队列使用 生产者消费者模型 线程理论 创建及对象属性方法 线程互斥锁 守护线程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

4. selenium中鼠标和键盘操作

一、鼠标操作 第一步:引入模块函数  from selenium.webdriver.common.action_chains import ActionChains  第二步:元素定位 element = driver.find_elements_by_id('kw') 第三步:创建一个action对象 action = ActionChains(dr...

Python Selenium Webdriver常用方法总结

Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: maximize_window() 设置窗口参数:set_window_size(600,800) 后退到前一页: back() 前进到后一页: forwar...

Java Selenium3 WebDriver启动火狐、Chrome、IE,Edge浏览器的方法(一)

selenium3和selenium2没有太大的区别,就是精简了一些不用的东西,对浏览器的支持更好了,比如对高版本的浏览器(FireFox,Chrome,Edge等)可以完美的支持,不用受限于版本的问题 下面总结一下启动常用浏览器的方法 前提 安装好java的环境配置 新建一个maven工程 在maven的pom文件加入selenium的依赖包(版本可根...

selenium自动化测试工具的使用总结

1、设置无头浏览器模式 from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('- -headless') chrome_opti...

极验验证码破解之selenium

这一篇写完很久了,因为识别率一直很低,没办法拿出来见大家,所以一直隐藏着,今天终于可以拿出来见见阳光了。 哈喽,大家好,我是星星在线,我又来了,今天给大家带来的是极验验证码的selenium破解之法,是不是有点小激动呢,小伙伴们等不了了,让我们赶紧直入主题吧。 虎嗅网注册 这次我们是拿虎嗅开刀,注册账号的时候需要滑动图片到缺口位置,这种验证码我们现在也经常...

selenium加载cookie报错问题:selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain

在使用selenium进行自动化登录的过程中已经获取到cookie后,依旧报错:selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain 获取cookie和添加cookie原代码如下: #获取cookie dr = webdriver...