python Selenium 3.14遇到原页面跳转至新页面,获取不到页面元素问题

解决步骤

1、句柄切换解决

刚遇到这个问题,便去百度了一下,说可能需要句柄未切换到当前句柄;便将很多文章的切换句柄语句放在上面试了一下,结果还是一直报Message: Unable to locate element

然后试了一下老方法,输出差错:

print(driver.current_window_handle)
print(driver.window_handles)

我在跳转语句的前后,添加了这个输出当前句柄,在跳转语句后添加输出句柄数组;
结果输出为:

4294967297
4294967297
[u'4294967297']

跳转语句的前后,输出当前句柄(句柄为变可以预料);
但,跳转页面后的句柄数组里只存在一个元素(后查明原因:新开页才会记录到句柄数组,从原页面跳转至新页面不会记录到数组内),所以移动句柄方案否决。

2、查看跳转后页面源码

后查看跳入新页面的页面源码,才发现是用iframe方式引用的网站登录页面
所以需要切换到iframe

#定位iframe
iframe = driver.find_element_by_id("loginChild");
# 切换入iframe
driver.switch_to.frame(iframe);
......
#切换出iframe
driver.switch_to.default_content()

结语

最后,希望我的文章能够帮助到你,感谢阅读。

你可能感兴趣的:(python Selenium 3.14遇到原页面跳转至新页面,获取不到页面元素问题)