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()