切换frame的方法
(配合HTML代码食用)
API | 注释 |
---|---|
.switch_to.frame(0) | 用frame的index来定位,第一个是0 |
.switch_to.frame("baidu") | 用id来定位 |
.switch_to.frame("百度") | 用name来定位 |
.switch_to.frame(.find_element_by_tag_name("百度")) | 用WebElement对象来定位 |
.switch_to.frame(.find_element_by_xpath("//iframe[contains(@id,'baidu')]")) | 用xpath定位,传入WebElement对象 |
.switch_to.frame('baidu) | frame一层一层的切入 |
.switch_to.parent_frame() | iframe退后操作,一层一层的退回 |
.switch_to.default_content() | 切换到主页面 |
用来练习的HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<iframe id= "baidu" name="百度" src="http://www.BAIDU.com" HEIGHT="300" WIDTH="1280"></iframe>
<iframe id= "sougou" name="搜狗" src="https://www.sogou.com/" HEIGHT="300" WIDTH="1280"></iframe>
</body>
</html>
练习步骤如下:
- 进入百度进行搜索
- 退回主页
- 进入搜狗进行搜索
- 后退一层frame
- 进入百度清空搜索框
点击查看代码
from selenium import webdriver from time import sleep
url = "file:///C:/Users/BIN/Desktop/fra.html"
browser = webdriver.Chrome()
browser.get(url)
browser.implicitly_wait(5)进入百度进行搜索
browser.switch_to.frame("baidu")
browser.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")退回主页
browser.switch_to.default_content()
进入搜狗进行搜索
sleep(1)
browser.switch_to.frame(1)
browser.find_element_by_xpath("//[@id='query']").send_keys("iframe")
browser.find_element_by_xpath("//[@id='stb']").click()后退一层frame
这里退回只能退到主页,比如后退两次到之前的ifarme界面则不可以实现
sleep(1)
browser.switch_to.parent_frame()browser.switch_to.parent_frame()
sleep(1)
进入百度清空搜索框
browser.switch_to.frame("百度")
browser.find_element_by_xpath("//*[@id='kw']").clear()
sleep(1)
browser.quit()