无法在SharePoint弹出窗口中找到元素

时间:2017-02-28 15:07:42

标签: selenium selenium-webdriver automation sharepoint-2010

当我想在Sharepoint 2010中创建新页面时,我遇到了查找元素的问题。我将我的测试用例从Selenium IDE Java / Junit 4 WebDriver导出到eclipse。

以下是弹出窗口的外观:http://imgur.com/a/oLNLb

我尝试了许多不同的元素定位器和组合,如:Xpath,Csselector,Id,Name 并且似乎没有人能够找到输入字段。

为什么会这样?

我曾尝试使用ExplicitWait和Implicit,但这似乎无法解决我的问题。

这就是陷入困境的地方:

try{
        assertTrue(isElementPresent(By.cssSelector("#ctl00_PlaceHolderMain_nameInput")));
    }
    catch(Error e) {
        verificationErrors.append(e.toString());
    }


    driver.findElement(By.xpath(".//*[@id='ctl00_PlaceHolderMain_nameInput']")).click();

提前致谢。 :)

1 个答案:

答案 0 :(得分:1)

SharePoint 2010中的弹出窗口通常是嵌入页面的iframe。

如果您可以获取对iframe的引用,则可以使用iframe的contentDocument属性查询嵌入页面。

例如,如果您的iframe的类名称为ms-dlgFrame,并且文本输入控件的ID为ctl00_PlaceHolderMain_nameInput,则可以使用以下JavaScript选择输入文本框:

document.querySelector(".ms-dlgFrame").contentDocument.querySelector("#ctl00_PlaceHolderMain_nameInput")