Selenium Webdriver - Windows


单击链接或按钮即可打开新的弹出窗口或选项卡。默认情况下,webdriver 具有对主页的控制权,为了访问新窗口上的元素,必须将 webdriver 控件从主页切换到新的弹出窗口或选项卡。

方法

下面列出了处理新窗口的方法 -

  • driver.current_window_handle - 获取焦点窗口的句柄 ID。

  • driver.window_handles - 获取所有打开的窗口句柄 ID 的列表。

  • driver.swtich_to.window(<窗口句柄 id>) - 将 webdriver 控件切换到打开的窗口,其句柄 id 作为参数传递给该方法。

点击这里链接

单击“单击此处”链接时,将打开一个新选项卡,其浏览器标题为“新窗口”。让我们尝试切换到新选项卡并访问其中的元素。

代码实现

打开新窗口的代码实现如下 -

from selenium import webdriver
driver = webdriver.Chrome(executable_path='../drivers/chromedriver')
#implicit wait time
driver.implicitly_wait(5)
#url launch
driver.get("https://the-internet.herokuapp.com/windows")
#identify element
s = driver.find_element_by_link_text("Click Here")
s.click()
#current main window handle
m= driver.current_window_handle
#iterate over all window handles
for h in driver.window_handles:
#check for main window handle
   if h != m:
      n = h
#switch to new tab
driver.switch_to.window(n)
print('Page title of new tab: ' + driver.title)
#switch to main window
driver.switch_to.window(m)
print('Page title of main window: ' + driver.title)
#quit browser
driver.quit()

输出

互联网

输出显示消息 - Process with exit code 0 表示上述 Python 代码执行成功。首先,新选项卡的页面标题(从方法标题获得) - 新窗口打印在控制台中。接下来,将 webdriver 控件切换到主窗口后,其页面标题 - The Internet 将打印在控制台中。