Selenium使用Damware和IE11在windows 10上运行,找不到任何元素
我在Windows10机器上通过Damware运行selenium到IE11。(当我使用Windows 7和IE 11从桌面运行时,它工作正常)。它需要查找用户名输入字段并输入用户名: 它没有找到任何元素。为了了解它认为它有哪些元素,我放了一些代码:Selenium使用Damware和IE11在windows 10上运行,找不到任何元素,selenium,internet-explorer-11,Selenium,Internet Explorer 11,我在Windows10机器上通过Damware运行selenium到IE11。(当我使用Windows 7和IE 11从桌面运行时,它工作正常)。它需要查找用户名输入字段并输入用户名: 它没有找到任何元素。为了了解它认为它有哪些元素,我放了一些代码: String xp = "//*[contains(text(), '_TXT_')]".replace("_TXT_", txt); addComment("xp is " + xp); Set&
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");
}
String xp=“//*[contains(text(),'.\u-TXT'.')]”。替换(“.\u-TXT'.”,TXT);
添加注释(“xp为”+xp);
Set handles=driver.getWindowHandles();
List hlist=Lists.newArrayList(句柄);
布尔值=false;
整数hsize=hlist.size();
addComment(“列表句柄数=“+hsize.toString());
hsize=handles.size();
addComment(“arr句柄数=“+hsize.toString());
for(字符串句柄:hlist){
addComment(“句柄是”+句柄);
addComment(“URL为”+driver.getCurrentUrl());
}
for(字符串句柄:hlist){
addComment(“句柄:+Handle”);
driver.switchTo().窗口(手柄);
List eles=driver.findElements(By.xpath(“//*”);
for(WebElement ele:eles){
String tag=ele.getTagName();
字符串id=ele.getAttribute(“id”);
字符串nm=ele.getAttribute(“名称”);
addComment(handle+“:“+”/“+tag+”[@“+id+”=“+id+”+name=“+nm”);
}
WebElement e=SeleniumTools.waitForWebElement(By.xpath(xp),20);
找到=(e!=null);
如果(找到){
打破
}
}
如果(!找到){
抛出新的KDTException(“未找到窗口”);
}
这应该检查驱动程序可访问的每个窗口,并打印它找到的每个元素(因为我使用了“/*”)。当我运行它时,如果发现1个窗口,1个句柄,但没有元素。(addComment将注释添加到日志文件中)
我传入文本进行搜索。在本例中,查找包含该文本的窗口实际上是“assword”。但如果没有找到任何元素,它就永远不会走到那么远。您可以从下图中看到元素就在那里。
所以我不知道为什么它找不到任何东西。我在IE中的所有区域都设置为受保护。(我还尝试了关闭所有受保护模式)。
是的,我们确实需要使用IE,因为Chrome无法处理某些功能。我想知道Chrome无法处理的功能是什么?但关于您最初的问题,请检查您是否在运行selenium()的机器上设置了此注册表项,这在OP的问题(post)中显然,为了回答第一个问题,Chrome无法处理冷熔合。为了回答第二个问题,我已经联系我们的系统管理员检查注册表。我认为我自己无法检查它?实际上我能够设置它。我是否需要重新登录或其他什么,因为我仍然有相同的问题。您可能需要重新启动机器是的,这可能不是Chrome的实际问题,但是文件,()这会导致勒索软件攻击吗?