在一些网页中经常会看到ifrmae/frame标签,iframe是嵌入式框架一般用来在已有的页面中嵌入另一个页面,当一个元素在iframe里时我们应该先切换到iframe里面。

API语法

1.进入iframe

iframe = self.driver.find_element_by_xpath("//iframe[contains(@src,'https://wap.cmread.com/sso/auth?e_p=1&response_type=token')]") self.driver.switch_to.frame(iframe)

2.释放/退出iframe

driver.switch_to_default_content()

代码实例

以咪咕阅读网站登录界面来实践iframe的切换,我们直接进入登录界面进行操作网址为http://www.cmread.com/u/tologin.do?preUrl=http%3A%2F%2Fwww.cmread.com%2Fu%2Findex

代码如下:

#author:命命
from selenium import webdriver 
driver = webdriver.Chrome() 
driver.maximize_window() 
driver.get("http://www.cmread.com/u/tologin.do?preUrl=http%3A%2F%2Fwww.cmread.com%2Fu%2Findex") 
#通过contains函数,提取匹配特定文本的所有元素 
frame = driver.find_element_by_xpath("//iframe[contains(@src,'https://wap.cmread.com/sso/auth?e_p=1&response_type=token')]") 
#进入iframe页面 
driver.switch_to.frame(frame) 
#清除账号输入框并输入账号 
driver.find_element_by_id("unameInput").clear() 
driver.find_element_by_id("unameInput").send_keys("输入自己的用户名") 
#清除密码输入框并输入密码 
driver.find_element_by_id("pwdInput").clear() 
driver.find_element_by_id("pwdInput").send_keys("输入自己的密码") 
#点击登录按钮 
driver.find_element_by_css_selector("input[name = 'login']").click() 
#获取登录成功页面的用户名 
success = driver.find_element_by_css_selector("span[title = '好的好的d']").text 
print(success) 
driver.quit()

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://zhangyanc.club/subject/article/selenium-iframe/

许可协议:署名-非商业性使用 4.0 国际许可协议