Python Selenium 中的 Window 操作

2023-04-17 00:00:00 python selenium 操作
  1. 切换窗口
# 获取当前窗口句柄
current_handle = driver.current_window_handle 

# 获取所有已打开窗口的句柄列表
all_handles = driver.window_handles 

# 切换到指定窗口
for handle in all_handles:
    if handle != current_handle:
        driver.switch_to.window(handle)
        # 操作新窗口内的元素
        driver.find_element_by_id("xxx").click()
        break
  1. 窗口大小调整
# 最大化窗口
driver.maximize_window()

# 将窗口大小调整为固定大小
driver.set_window_size(800, 600)
  1. 窗口位置调整
# 获取当前窗口位置
current_position = driver.get_window_position()

# 将窗口位置调整到指定位置
driver.set_window_position(100, 100)
  1. 页面滚动
# 滚动到指定元素位置
elem = driver.find_element_by_id("xxx")
driver.execute_script("arguments[0].scrollIntoView();", elem)

# 滚动到顶部
driver.execute_script("window.scrollTo(0, 0);")

# 滚动到底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
  1. 弹窗处理
# 关闭弹窗
driver.switch_to.alert.dismiss()

# 获取弹窗文本并确认
alert = driver.switch_to.alert
text = alert.text
alert.accept()
  1. 警告框处理
# 获取警告框文本并确认
alert = driver.switch_to.alert
text = alert.text
alert.accept()

# 获取警告框文本并取消
alert = driver.switch_to.alert
text = alert.text
alert.dismiss()

示例代码:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.pidancode.com")

# 切换到新窗口并操作页面元素
current_handle = driver.current_window_handle 
all_handles = driver.window_handles 
for handle in all_handles:
    if handle != current_handle:
        driver.switch_to.window(handle)
        elem = driver.find_element_by_id("xxx")
        elem.click()
        break

# 最大化窗口
driver.maximize_window()

# 将窗口大小调整为固定大小
driver.set_window_size(800, 600)

# 获取当前窗口位置
current_position = driver.get_window_position()

# 将窗口位置调整到指定位置
driver.set_window_position(100, 100)

# 滚动到指定元素位置
elem = driver.find_element_by_id("xxx")
driver.execute_script("arguments[0].scrollIntoView();", elem)

# 滚动到顶部
driver.execute_script("window.scrollTo(0, 0);")

# 滚动到底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

# 关闭弹窗
driver.switch_to.alert.dismiss()

# 获取警告框文本并确认
alert = driver.switch_to.alert
text = alert.text
alert.accept()

driver.quit()

相关文章