Python Selenium 中的 Window 操作
- 切换窗口
# 获取当前窗口句柄 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
- 窗口大小调整
# 最大化窗口 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()
- 警告框处理
# 获取警告框文本并确认 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()
相关文章