我正在Windows 10计算机上通过Dameware在IE 11上运行硒。(当我从Windows 7和IE 11在桌面上运行时,它可以正常工作)。它需要查找用户名输入字段并输入用户名:
找不到任何元素。为了查看其认为具有的元素,我添加了一些代码:
String xp = "//*[contains(text(), '_TXT_')]".replace("_TXT_", txt);
addComment("xp is " + xp);
Set<String> handles = driver.getWindowHandles();
List<String> hlist = Lists.newArrayList(handles);
boolean found = false;
Integer hsize = hlist.size();
addComment("Number of list handles = " + hsize.toString());
hsize = handles.size();
addComment("Number of arr handles = " + hsize.toString());
for (String handle : hlist) {
addComment("Handle is " + handle);
addComment("URL is " + driver.getCurrentUrl());
}
for (String handle : hlist) {
addComment("Handle: " + handle);
driver.switchTo().window(handle);
List<WebElement> eles = driver.findElements(By.xpath("//*"));
for (WebElement ele : eles) {
String tag = ele.getTagName();
String id = ele.getAttribute("id");
String nm = ele.getAttribute("Name");
addComment(handle + ": " + "//" + tag + "[@" + id + "=" + id + " + name = " + nm);
}
WebElement e = SeleniumTools.waitForWebElement(By.xpath(xp), 20);
found = (e != null);
if (found) {
break;
}
}
if (!found) {
throw new KDTException("No window found");
}
这应该检查驱动程序可访问的每个窗口并打印找到的每个元素(因为我使用了“ // *”)。当我运行它时,如果找到1个窗口,1个句柄但没有元素。 (addComment将注释添加到日志文件中。)
我输入了要搜索的文本。在这种情况下,实际上是用该文本查找窗口的“关键词”。但是,它从来没有找到任何元素就走得太远。您可以从下面的图片中看到该元素。
所以我不确定为什么找不到任何东西。我在IE中的所有区域均设置为受保护。 (我也尝试过关闭所有保护模式)。 是的,我们确实需要使用IE,因为Chrome无法处理某些功能。