Python+Selenium练习(二十七)- 处理iframe切换

  利用Selenium中方法,在不同iframe中切换。

  问题:很多时候会发现元素定位没问题,在测试回放过程中,发现就是找不到元素报错。

  参考作者编写的网页,利用iframe网页框架,把页面分成上下两个不同的iframe控制的页面。使用方法:把下面的HTML代码保存到一个记事本里面,然后名称为iframe=demo.html

<html>
<head><title>iframe test page</title></head>
<body>
<iframe id="frame1" src="https://www.baidu.com" name="slider" height="325" width="550"></iframe>
<br>
<iframe id="frame2" src="http://example.com" name="example" height="325" width="550"></iframe>
</body>
</html>

  

用浏览器打开后是这样的:

 

 

具体代码:

driver.switch_to.frame("frame1")
driver.switch_to.default_content()

  

举例:

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("https://www.126.com")
time.sleep(3)
driver.find_element_by_xpath('//*[@id="lbNormal"]').click()
time.sleep(1)
iframe = driver.find_element_by_xpath('//*[@id="loginDiv"]/iframe')
driver.switch_to.frame(iframe)
# 切换到iframe,若无此行代码,则找不到帐号输入框
driver.find_element_by_name("email").send_keys("selenium switch test")
# 在账号输入框内输入
time.sleep(2)
driver.quit()

  

 

 

参考文章:https://blog.csdn.net/u011541946/article/details/70136050

posted @ 2020-04-07 10:56  哔仙女  阅读(310)  评论(0)    收藏  举报