contents
from selenium.webdriver import Chrome
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver=Chrome(options=options)
frame/窗口 切换
frame切换
在html语法中,frame元素或者iframe元素的内部会包含一个被嵌入的 另一份html文档。而selenium对打开网页的操作范围默认是当前的html和frame(iframe)本身, 并不包含被嵌入的html文档里面的内容。
要操控被嵌入frame(iframe)里的 html文档中的元素, 就必须切换操控范围到被嵌入的文档中。
用WebDriver的switch_to切换
- 进入frame(iframe):
driver.switch_to.frame(frame_reference)
写在要定位frame里的元素之前。后续选择和操作界面元素就都是在这个frame里面的元素。
frame_reference | 代码示例 |
---|---|
属性name | driver.switch_to.frame(“name值”) |
ID | driver.switch_to.frame(“ID值”) |
WebElement 对象(find系列的方法定位元素) | driver.switch_to.frame(driver.find_element(By.ID,“ID值”)) |
- 切换回原来的主html:
driver.switch_to.default_content()
后续选择和操作界面元素都会在原来的主html中(frame之外)进行。
窗口切换
在网页上操作的时候,点击一个链接或者按钮,有时会打开一个新窗口,但这时WebDriver对象对应的还是老窗口,即自动化操作也还是在老窗口进行。