利用Selenium中方法,在不同iframe中切换。
问题:很多时候会发现元素定位没问题,在测试回放过程中,发现就是找不到元素报错。
参考作者编写的网页,利用iframe网页框架,把页面分成上下两个不同的iframe控制的页面。使用方法:把下面的HTML代码保存到一个记事本里面,然后名称为iframe=demo.html
iframe test page用浏览器打开后是这样的:
具体代码:
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()