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

Unable to locate element in SharePoint popup window

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

弹出窗口 window 如下所示:http://imgur.com/a/oLNLb

我尝试了许多不同的元素定位器和组合,例如:Xpath、Csselector、Id、Name 其中 none 似乎能够找到输入字段。

为什么会这样?

我尝试过使用 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();

提前致谢。 :)

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

如果您可以获得对 iframe 的引用,则可以使用 iframe 的 contentDocument 属性.

查询嵌入页面

比如你的iframe的class名字是ms-dlgFrame,文本输入控件的ID是ctl00_PlaceHolderMain_nameInput,你可以使用下面的JavaScript到select输入文本框:

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