【第05节】Selenium4 Web浏览器窗口切换与警告框实战(Python Web自动化测试)

1、Web 浏览器窗口切换

1.1 GET 方法切换窗口

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

# 打开浏览器
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
# 百度一下  测试吧
driver.find_element(By.ID,'kw').send_keys("测试吧")
driver.find_element(By.ID,'su').click()
# 第一个窗口下单点击 测试吧
sleep(2)
driver.find_element(By.XPATH,"//div[@id='s_tab']/div/a").click()
sleep(2)
driver.find_element(By.XPATH,"//*[@id='thread_list']/li[2]/div/div[2]/div[1]/div[1]/a").click()
# 使用 GET 方法切换浏览器窗口
driver.get('https://tieba.baidu.com/p/8153107829')
sleep(1)
# 跳转进入贴吧
driver.find_element(By.LINK_TEXT,'进入贴吧').click()

# driver.close()关闭驱动,driver.quit()退出驱动,开发中一般建议使用driver.quit()
driver.quit()

1.2 SWITCH 方法切换窗口

推荐使用 Switch 方法切换窗口 。注意:切换窗口的下标是从0开始

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

# 打开浏览器
driver = webdriver.Chrome()
driver.get("https://www.so.com/")
driver.maximize_window()
# 点击 360 导航
driver.find_element(By.LINK_TEXT,'360导航').click()
sleep(3)
# 使用 window_handles 里面的 switch_to.window() 方法
windows = driver.window_handles
# 切换 web 第二个窗口
driver.switch_to.window(windows[1])
driver.find_element(By.ID,'search-kw').send_keys("测试 web 浏览器第二个窗口")
sleep(2)
# 切换 web 第一个窗口
driver.switch_to.window(windows[0])
sleep(2)
driver.find_element(By.ID,'input').send_keys("测试 web 浏览器第一个窗口")

# driver.close()关闭驱动,driver.quit()退出驱动,开发中一般建议使用driver.quit()
driver.quit()

2、Web 警告框操作方法

  • switch_to.alert.text (输入警告框内容)
  • switch_to.alert.accept() (确认警告框)
  • switch_to.alert.dismiss()(取消警告框)

注意:因为百度警告框没有取消按键,代码判断 i 值为 1 时看不出取消的操作,需要调试代码才能查看结果,代码运行没有任何问题。

import random
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

# 打开浏览器
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
setting = driver.find_element(By.ID, 's-usersetting-top')
# 鼠标悬浮设置
ActionChains(driver).move_to_element(setting).perform()
driver.find_element(By.LINK_TEXT, '搜索设置').click()
sleep(1)
# 选择设置内容
driver.find_element(By.XPATH, '//*[@id="se-setting-3"]/span[2]/label').click()
sleep(1)
# 点击保存设置
driver.find_element(By.XPATH, '//*[@id="se-setting-7"]/a[2]').click()
# 输出警告框
print(driver.switch_to.alert.text)
"""
使用 random.randint 随机数判断,
随机数 0 是确认警告框, 1 是取消警告框
这里知演示 switch_to.alert.accept() 或 switch_to.alert.dismiss()
"""
i = random.randint(0,1)
if i == 0:
    # 确认警告框
    driver.switch_to.alert.accept()
else:
    # 取消警告框
    driver.switch_to.alert.dismiss()

# driver.close()关闭驱动,driver.quit()退出驱动,开发中一般建议使用driver.quit()
driver.quit()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一禅(OneZen)

你的鼓励将是我创作的最大动力哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值