切换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()
转载于:https://www.cnblogs.com/youngleesin/p/11360094.html