利用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