Selenium - 如何进行多个窗口操作?

操作多窗口的原因: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、元素是否在新窗口

6、元素是否在于iframe(框架 )标签中

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值