当我想在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();
提前致谢。 :)
答案 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")