WebdriverIO - 多窗口/标签页



点击链接或按钮可能会打开多个窗口/标签页。WebdriverIO 默认情况下只控制主浏览器,为了访问其他标签页的元素,需要将 WebdriverIO 的控制权从主浏览器窗口切换到已打开的标签页。

多窗口方法

处理多个窗口或标签页的一些方法如下:

browser.getWindowHandles()

此方法以列表的形式返回所有当前打开的浏览器窗口的窗口句柄 ID。如果打开了两个窗口,列表的零索引包含父窗口的句柄 ID,而第一个索引指向标签页的窗口句柄。

语法

语法如下:

var x = browser.getWindowHandles()

browser.getWindowHandle()

此方法返回当前焦点浏览器窗口的窗口句柄 ID。

语法如下:

let l = browser.getWindowHandle()

browser.switchToWindow('window handle id')

此方法用于将焦点从当前焦点浏览器窗口切换到另一个打开的浏览器窗口,其窗口句柄 ID 作为参数传递给此方法。

语法

语法如下:

browser.switchToWindow(x)

在下图中,点击“点击此处”链接会打开一个新标签页,浏览器标题为“新窗口”。让我们切换到新标签页并访问其中的元素。

Multiple Windows

首先,请按照标题为“使用 WebdriverIO 的正常流程”章节中的步骤 1 到步骤 5 操作,步骤如下:

步骤 1 - 安装 NodeJS。有关如何执行此安装的详细信息,请参阅标题为“使用 NodeJS 入门”的章节。

步骤 2 - 安装 NPM。有关如何执行此安装的详细信息,请参阅标题为“NPM 安装”的章节。

步骤 3 - 安装 VS Code。有关如何执行此安装的详细信息,请参阅标题为“VS Code 安装”的章节。

步骤 4 - 创建配置文件。有关如何执行此安装的详细信息,请参阅标题为“配置文件生成”的章节。

步骤 5 - 创建一个规范文件。有关如何执行此安装的详细信息,请参阅标题为“Mocha 安装”的章节。

步骤 6 - 将以下代码添加到创建的 Mocha 规范文件中。

// test suite name
describe('Tutorialspoint application', function(){
   //test case
   it('Tab windows', function(){    
      // launch url
      browser.url('https://the-internet.herokuapp.com/windows')  
      //identify element then click
      $('=Click Here').click()
      //get all window handle ids in list
      let w = browser.getWindowHandles()
      //switch to tab
      browser.switchToWindow(w[1])
      //get page title of tab
      console.log(browser.getTitle() + ' - Page title of tab')
      //close child window
      browser.closeWindow()
      //switch to parent window
      browser.switchToWindow(w[0])
      //get page title of parent
      console.log(browser.getTitle() + ' - Page title of parent window')      
   });
});

使用以下命令运行配置文件 - wdio.conf.js 文件:

npx wdio run wdio.conf.js 

有关如何创建配置文件的详细信息,请参阅标题为“wdio.conf.js 文件”和“配置文件生成”的章节。

您的计算机上将显示以下屏幕:

Multiple Windows Screen

命令成功执行后,标签窗口 - “新窗口”的页面标题将打印到控制台。然后,父窗口 - “互联网”的页面标题将打印到控制台。

广告
© . All rights reserved.