大家好,我是好学的小师弟,今天工作中发现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])
这样子,我们的浏览器窗口页面就更新了,然后就可以接着进行页面元素定位,自动化这些操作!
新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!
转载注明出处!