在一些网页中经常会看到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 国际许可协议