frame介绍
frame切换方法
说明:在Selenium中封装了如何切换frame框架的方法
方法:
1). driver.switch_to.frame(frame_reference) --> 切换到指定frame的方法
frame_reference:可以为frame框架的name、id或者定位到的frame元素
2). driver.switch_to.default_content() --> 恢复默认页面方法
在frame中操作其他页面,必须先回到默认页面,才能进一步操作
补充
Frame标签有Frameset,Frame和iFrame三种。Frameset可以直接按照正常元素定位。Frame和iFrame的定位方法相同,需要把驱动切换到Frame内再进行操作。
切换方法:
1:通过frame的id属性:driver.switch_to.frame(‘id属性’)
2:通过frame的name属性:driver.switch_to.frame(‘name属性’)
3:通过index来定位:driver.switch_to.frame(0) 其中0表示第一个iframe
示例:
登录QQ邮箱。QQ邮箱登录,其用户名密码等嵌套在iFrame内,其iFrame的id属性值为“login_frame”,因此需要先进行切换。
# coding = utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from time import sleep d = webdriver.Chrome() # 设置浏览器窗口最大化 d.maximize_window() # 打开QQ邮箱登录页面 d.get('https://mail.qq.com/') # 切换iframe d.switch_to.frame('login_frame') # 输入qq号 d.find_element(By.ID, 'u').send_keys('1234567') # 输入密码 d.find_element(By.ID, 'p').send_keys('7654321') # 点击登录 d.find_element(By.ID, 'login_button').click() # 强制等等2秒查看效果 sleep(2) # 关闭浏览器 d.quit()
注意:上面的代码已经切换到Frame内部,此时只能对Frame内部元素进行操作,若要对Frame之外的元素进行操作,则需要切换出去,切换方法如下:driver.switch_to.default_content()
标签:driver,Frame,selenium,switch,切换,操作,frame From: https://www.cnblogs.com/yunlong-study/p/16594116.html