⽬标:能够独⽴在多窗⼝中定位元素
认识窗口
多窗口:在HTML页面中,当点击超链接或者按钮时,有的会在新的窗口打开页面。
窗口切换:selenium需要通过窗口的 来实现窗口的切换!
窗口切换方法
获取所有窗口句柄handles = driver.window_handles
切换指定窗口driver.switch_to.window(handles[n])
练习需求:
需求:打开‘注册实例.html’页面,完成以下操作
1). 点击‘注册A页面’链接
2). 在打开的页面中,填写注册信息
答案:
from time import sleep
from selenium import webdriver
# 1、获取浏览器
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.implicitly_wait(10)
# 2、打开url
driver.get("file:///Users/lgy/Documents/fodder/web/Register.html")
"""
为什么要处理多窗口?-- selenium默认焦点在启动窗口,要操作其他窗口必须处理。
需求:
1、打开注册示例页面
2、点击注册A网页链接
3、填写注册A网页内容
"""
print("操作之前所有窗口的句柄:", driver.window_handles)
driver.find_element(By.LINK_TEXT, "注册A网页").click()
handles = driver.window_handles
print("操作之后所有窗口的句柄:", handles)
# 重点:切换窗口
driver.switch_to.window(handles[1])
# 填写注册A网页 用户名
driver.find_element(By.CSS_SELECTOR, "#userA").send_keys("admin")
# 4、关闭浏览器
sleep(3)
driver.quit()
driver.quit()