操作多窗口的原因:selenium 默认焦点在启动窗口,要操作其他窗口必须进行切换窗口 (句柄是指窗口的唯一标识)
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
# 1. 获取浏览器
driver = webdriver.Chrome()
# 2. 打开浏览器 输入url
driver.get("")
# 封装
def switch_window(title):
# 1. 获取所有窗口句柄
handles = driver.window_handles
# 2. 遍历句柄进行切换
for handle in handles:
# 操作
driver.switch_to.window(handle)
# 获取当前窗口title 并且判断是否自己需要的窗口
if driver.title == title:
# 操作代码
return "已经找到{}窗口,并且已经切换成功".format(title)
title_A = "注册A"
title_B = "注册B"
# 打开注册A和注册B网页
driver.find_element(By.LINK_TEXT, "注册A网页").click()
driver.find_element(By.LINK_TEXT, "注册B网页").click()
# 填写注册A网页用户名
switch_window(title_A)
driver.find_element(By.CSS_SELECTOR, "#user1").send_keys("root")
# 填写注册B网页用户名
switch_window(title_B)
driver.find_element(By.CSS_SELECTOR, "#user2").send_keys("root")
# 4. 关闭浏览器
sleep(13)
driver.quit()
扩展题:
在执行UI自动化时,如果找不到元素,分析有哪些原因?
答:1、元素定位代码是否正确
2、是否是匹配到唯一元素
3、是否有做元素等待
4、是否需要鼠标悬浮
5、元素是否在新窗口文章来源:https://www.toymoban.com/news/detail-502725.html
6、元素是否在于iframe(框架 )标签中文章来源地址https://www.toymoban.com/news/detail-502725.html
到了这里,关于Selenium - 如何进行多个窗口操作?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!