java切换到框架在HtmlUnit驱动程序中不工作
我正在使用HtmlUnit驱动程序,但是我的代码可以与Firefox或chrome一起使用,但是当我开始使用HtmlUnit驱动程序时,它可以工作到一定程度,但在那之后,它仍然停留在我使用驱动程序的位置。切换到()。框架(“大”)
我参考了下面的链接,但不确定为什么它不起作用
.switchTo().frame(<'frameId'>); not working with HtmlUnit Driver
https://sqa.stackexchange.com/questions/15309/selenium-htmlunit-how-do-i-disable-js-errors
下面是我试过的
自定义HtmlUnitDriver。爪哇
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;
}
}
启动。爪哇
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: Unable to locate frame with name or ID: Big Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z' System info: host: 'CPU-38', ip: '000000', os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.8.0_171' Driver info: driver.version: unknown at org.openqa.selenium.htmlunit.HtmlUnitDriver$HtmlUnitTargetLocator.frame(HtmlUnitDriver.java:1507)
# 1 楼答案
我想到了两个可能的原因
如果您正在查找的框架是纯Html响应的一部分(使用Charles之类的工具查看浏览器和服务器之间的实际情况),这可能是HtmlUnit/WebDriver中的一个bug
请提供一个完整的工作示例,让我们有机会重现/调试该问题