欢迎访问宙启技术站
智能推送

Python中使用selenium.webdriver进行多窗口切换的方法

发布时间:2023-12-26 00:13:44

在Python中,可以使用selenium.webdriver库来进行Web自动化测试,包括多窗口切换。下面是使用selenium.webdriver进行多窗口切换的方法及一个使用例子:

1. 获取当前窗口句柄:

   current_window = driver.current_window_handle
   

driver.current_window_handle用于获取当前窗口的句柄。

2. 获取所有窗口句柄:

   all_windows = driver.window_handles
   

driver.window_handles用于获取所有窗口的句柄。

3. 切换到新窗口:

   driver.switch_to.window(new_window)
   

driver.switch_to.window(new_window)用于切换到新窗口,其中new_window是要切换的窗口句柄。

下面是一个使用selenium.webdriver进行多窗口切换的例子:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器
driver = webdriver.Chrome()
# 打开网页
driver.get("https://www.example.com")
# 点击链接打开新窗口
new_window_link = driver.find_element(By.XPATH, "//a[@target='_blank']")
new_window_link.click()

# 获取当前窗口句柄
current_window = driver.current_window_handle

# 等待新窗口打开
wait = WebDriverWait(driver, 10)
wait.until(EC.new_window_is_opened(all_windows))

# 获取所有窗口句柄
all_windows = driver.window_handles

# 切换到新窗口
for window in all_windows:
    if window != current_window:
        driver.switch_to.window(window)
        break

# 在新窗口进行操作
new_window_title = driver.title
print("New window title:", new_window_title)

# 关闭新窗口
driver.close()

# 切换回原窗口
driver.switch_to.window(current_window)

# 在原窗口进行操作
original_window_title = driver.title
print("Original window title:", original_window_title)

# 关闭浏览器
driver.quit()

在这个例子中,我们首先使用current_window_handle获取当前窗口的句柄,然后使用find_elementclick方法模拟点击一个链接,在新窗口打开。接下来,我们使用new_window_is_opened等待新窗口打开并获取所有窗口句柄。然后,我们使用switch_to.window方法切换到新窗口。在新窗口中,我们可以进行操作,比如获取新窗口的标题。完成操作后,我们可以关闭新窗口并使用switch_to.window切换回原窗口进行其他操作。最后,我们使用quit方法关闭浏览器。