利用selenium框架爬取京东省市区数据时,网页里面内嵌的一个窗口遇到的NoSuchElementException的 bug,原因是iframe

在自动化测试中遇到一个问题,尝试通过Xpath定位页面元素时出现错误。原来页面的元素位于iframe内,需要先切换到iframe,然后才能正确定位。解决方案是找到iframe元素,使用`switch_to.frame()`方法进入iframe,再执行Xpath定位。通过ActionChains完成鼠标悬停操作,成功解决了问题。学习资源包括Selenium的鼠标操作教程和Python-Selenium中文文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bug:

 

         在进行下面操作的时候遇到的,我需要把鼠标移动到下面的位置,这样页面会自动显示省份信息,我定位元素的方法是Xpath方式,但是直接报错了,我反复确定位置没有错误,我就一脸懵了,开始搜索寻找解决方案之路。

        解决方法是加上iframe = driver.find_element_by_xpath('//*[@id="dialogIframe"]')这样,因为这个页面的元素是嵌套在某个东西里面,你首先需要通过Switch_to的方式切换到这里,再用Xpath进行定位元素。相当于html里面嵌套了htm了

iframe = driver.find_element_by_xpath('//*[@id="dialogIframe"]')
# 切换到iframe
driver.switch_to.frame(iframe)
# 在进行定位元素
hover_element=driver.find_element_by_xpath('//*[@id="jd_area"]/div[1]/div')
ActionChains(driver).move_to_element(hover_element).perform()

ActionChains相关知识可以看这个链接

(36条消息) 学会了selenium 模拟鼠标操作,你就可以偷懒点点点了_二 黑的博客-优快云博客_selenium 鼠标移出

学习的一些资料:

4.元素定位 - selenium-python中文文档 (python-selenium-zh.readthedocs.io)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据闲逛人

谢谢大嘎喔~ 开心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值