如何从弹出窗口中读取文本消息,该窗口是在新浏览器上打开的?

时间:2017-05-29 10:13:00

标签: selenium-webdriver

当我点击某个链接时,会在新浏览器上打开弹出窗口。我想从弹出窗口中阅读短信。这不是警报。我怎么能阅读这条消息。我应该使用Java集合吗?

3 个答案:

答案 0 :(得分:0)

您可以使用切换到窗口方法,并通过获取窗口句柄将驱动程序焦点移动到新窗口。然后获取页面源值或页面文本。

答案 1 :(得分:0)

一旦你能够切换到所需的窗口我。即新打开的浏览器窗口,您可以通过使用 tagName 作为 body 查找WebElement,然后在其上调用 getText()方法来从该窗口中获取文本。以下是实现该目的的示例代码:

Set<String> winHandles = driver.getWindowHandles(); 
Iterator<String> itr = winHandles.iterator();

String currentWin = itr.next();
String newBrowserWin = null;
if (itr.hasNext())
    newBrowserWin = itr.next();

String newBrowserWinText;
if (newBrowserWin!=null) {
    driver.switchTo().window(newBrowserWin);

    newBrowserWinText = driver.findElement(By.tagName("body")).getText();
}

变量 newBrowserWinText 将包含新打开的浏览器窗口的文本,一旦执行上面的代码。

请告诉我,上述代码是否适合您。

答案 2 :(得分:0)

试试这个

// Store the current window handle
String winHandleBefore = driver.getWindowHandle();

// Perform the click operation that opens new window

// Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
  driver.switchTo().window(winHandle);
}

// Get the text message from popup window

// Close the new window, if that window no more required
driver.close();