我正在使用HtmlUnit驱动程序,但是我的代码可以在Firefox或chrome上使用,但是当我开始使用HtmlUnit驱动程序时,它可以工作到一定程度,但之后又停留在使用driver.switchTo()的那一行。 frame(“ Big”);
我引用了以下链接,但不确定为什么它不起作用
.switchTo().frame(<'frameId'>); not working with HtmlUnit Driver
https://sqa.stackexchange.com/questions/15309/selenium-htmlunit-how-do-i-disable-js-errors
下面是我尝试过的。
CustomHtmlUnitDriver.java
public class CustomHtmlUnitDriver extends HtmlUnitDriver {
@Override
protected WebClient modifyWebClient(WebClient client) {
WebClient modifiedClient = super.modifyWebClient(client);
modifiedClient.getOptions().setThrowExceptionOnScriptError(false); // see here
modifiedClient.getOptions().setJavaScriptEnabled(true);
return modifiedClient;
}
}
Startup.java
static CustomHtmlUnitDriver driver = new CustomHtmlUnitDriver();
Thread.sleep(3000);
driver.manage().window().maximize();
---
/*some working code */
driver.switchTo().frame("Big");
/*and then the error as below*/
错误为
org.openqa.selenium.NoSuchFrameException:无法找到带有 名称或ID:大版本信息:版本:“ 3.13.0”,修订版:“ 2f0d292”, 时间:'2018-06-25T15:24:21.231Z'系统信息:主机:'CPU-38',IP: '000000',os.name:'Windows 8',os.arch:'x86',os.version:'6.2', java.version:'1.8.0_171'驱动程序信息:driver.version:未知 org.openqa.selenium.htmlunit.HtmlUnitDriver $ HtmlUnitTargetLocator.frame(HtmlUnitDriver.java:1507)
答案 0 :(得分:0)
我想到了两个可能的原因
如果您要查找的框架是普通HTML响应的一部分(使用诸如Charles之类的工具查看您的浏览器和服务器之间的实际情况),则可能是HtmlUnit / WebDriver中的错误。
请提供完整的工作示例,以使我们有机会重现/调试问题。