【问题标题】:Switch to Frame not working in HtmlUnit Driver切换到框架在 HtmlUnit 驱动程序中不起作用
【发布时间】:2018-12-18 06:23:16
【问题描述】:

我正在使用 HtmlUnit 驱动程序,但是我的代码适用于 Firefox 或 chrome,但是当我开始使用 HtmlUnit 驱动程序时,它工作到一定程度,但之后它卡在了我使用 driver.switchTo() 的位置。框架(“大”);

我参考了下面的链接,但不知道为什么它不起作用

.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)

【问题讨论】:

  • 你是否设置了 javasecriptexecution 为真?

标签: java selenium driver


【解决方案1】:

我想到了两个可能的原因

  1. modifiedClient.getOptions().setThrowExceptionOnScriptError(false);这意味着您忽略了 js 错误。并且 HtmlUnit js 支持在某些方面并不完美,也许一个 js 函数在这个函数(或从函数调用的函数)之前失败,因此永远不会创建框架。请检查您的日志,也许有提示。
  2. 框架由异步js创建;也许您必须在最后一个工作步骤之后等待,直到创建框架。在您的客户端上使用 waitForBackground... 来增加一些等待时间。

如果您要查找的框架是普通 Html 响应的一部分(使用 Charles 等工具查看浏览器和服务器之间的实际情况),这可能是 HtmlUnit/WebDriver 中的错误。

请提供一个完整的工作示例,让我们有机会重现/调试问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-26
    • 2018-03-24
    • 2013-01-29
    • 2013-06-13
    • 2012-09-05
    • 2017-09-11
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多