如何使用Selenium Webdriver验证模态对话框中的文本

时间:2016-04-17 17:02:41

标签: java selenium-webdriver modal-dialog

我有一个网页,其中包含'查看条款'选项。点击'查看条款'将打开一个模态对话框。我想验证模态对话框中的文本。我面临的问题是如何从主窗口切换到模态对话框。我尝试了driver.getWindowHandles(),但是没什么工作的。请建议如何将焦点切换到对话框并获取文本。

我使用Selenium 2.52.0和java作为语言。

enter image description here

4 个答案:

答案 0 :(得分:0)

它不是一个单独的窗口,所以你不应该对getWindowHandles()做任何事情。只需尝试通过在同一页面上使用browser.findElement(模态路径).getText()获取文本来断言。

答案 1 :(得分:0)

HI只需使用如下所示即可使用注意请更新您的硒版本。

String contentOfTerms = driver.findElement(By.xpath("//*[@class='terms_content']/p")).getText();
System.out.println(contentOfTerms);

答案 2 :(得分:0)

如果窗口位于不同的框架中,则需要切换窗口,但它看起来不像是不同的框架,尽管如果它位于不同的框架中,请尝试并使用以下代码将父窗口切换到子窗口:

public void windowSwitch()
            {
                String parentWin = driver.getWindowHandle();    
            parentWin1=parentWin;
                Set<String> allwin =driver.getWindowHandles();
            for(String child : allwin)
            {
            if(!child.equals(parentWin))
                {
                driver.switchTo().window(child);
                    }
              }
            }

如果它只是一个对话框,那么使用以下代码从中获取字符串:

        public String alert()
        {    String str;
            Alert alert =  driver.switchTo().alert();  
            str= alert.getText();
            alert.accept();
            return  str;

        }

答案 3 :(得分:0)

driver.switchTo()。activeElement(); ///切换到活动的弹出元素...

driver.findElement(By.xpath(“ // * [@ class ='terms_content'] / p”))。getText(); //获得给定元素的文本将对您有用。