【selenium定位不了元素】selenium中xpath和css都定位不了元素,原来是你跳转了窗口

大家好,我是好学的小师弟,今天工作中发现selenium一直定位不了一个弹出框——'温馨提示'。xpath和css都用了,还是定位不了。一开始以为是iframe的锅,后来试了,还是不行。最后发现,是因为我跳转了窗口,虽然xpath的位置是当前窗口页面的元素的位置,但是driver控制的浏览器还停留在前一个窗口页面,这浏览器和页面元素都不匹配,怎么能对的上(笑哭)。。。拿昨天的过期车票能上得了今天的车嘛?明显不能!

 那么我们如何把driver更新到当前窗口页面?

我尝试了 driver.current_url,然后用当前的网址在重新登陆一遍,发现不行

后来发现selenium自己有选择登陆窗口的函数   

driver.switch_to.window(self,window_name)

我们只需要获取当前有多少个窗口,获得他们的句柄就行了,然后写到函数中去

具体代码:

# 获得打开的所有窗口句柄
Handles = driver.window_handles
# 浏览器更新到当前最新打开的页面
driver.switch_to.window(Handles[-1])

这样子,我们的浏览器窗口页面就更新了,然后就可以接着进行页面元素定位,自动化这些操作!


新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!

转载注明出处!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
有几个可能的原因导致Selenium点击图片链接无法跳转到目标页面: 1. 定位到了错误的图片元素:请确保您使用的定位方式准确地定位到了目标图片元素。可以使用开发者工具检查网页的图片元素,并使用正确的定位方式(如XPathCSS选择器)来定位到目标图片。 2. 图片链接有特殊处理:有些网站可能会对图片链接进行特殊处理,例如使用JavaScript或其他技术来实现点击事件。在这种情况下,简单地使用`click()`方法可能无法触发链接跳转。您可以尝试模拟鼠标事件来点击图片,例如使用`ActionChains`类的`move_to_element()`和`click()`方法。 3. 页面跳转依赖其他因素:有些网页可能会在点击图片链接后执行一些JavaScript代码或进行其他操作,才真正实现页面跳转。在这种情况下,您可能需要等待一段时间,让页面完成跳转或执行必要的操作。您可以使用`WebDriverWait`类来等待特定条件的出现。 4. 网站限制了自动化操作:有些网站会检测并限制自动化操作,例如通过检测浏览器驱动等方式。这可能会导致Selenium无法正常点击图片链接。您可以尝试通过更改浏览器驱动的设置、使用头less模式或使用其他工具来绕过这些限制。 综上所述,要解决Selenium点击图片链接无法跳转的问题,您可以检查定位方式、尝试模拟鼠标事件、等待页面跳转或操作完成,并注意网站对自动化操作的限制。根据具体情况进行调试和尝试不同的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

好学的小师弟

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值