【问题标题】:Why would HtmlUnitDriver not Locate WebElements but FirefoxDriver able to locate the same WebElements为什么 HtmlUnitDriver 不能定位 WebElements 但 FirefoxDriver 能够定位相同的 WebElements
【发布时间】:2022-01-15 15:13:21
【问题描述】:

我有一个问题。

是什么让 FirefoxDriver 能够定位 WebElements 并在 java 代码中单击它们,但是当使用 HtmlUnitDriver 运行相同的代码时,找不到相同的 WebElements。此外,在 HtmlUnit(应用 HtmlUnit 原则)上运行相同的代码时,未找到 WebElements,实际上代码返回 NullPointerException。有什么特别的原因吗?

【问题讨论】:

  • 使用相关的 HTML 和您的代码试验更新问题。

标签: javascript java selenium-webdriver htmlunit htmlunit-driver


【解决方案1】:

如果没有看到您的代码,我可能会冒险猜测这可能是因为您需要启用 javascript。

在 HtmlUnitDriver 中默认禁用 JavaScript。

如果您查看源构造函数 (LICENSE Apache 2.0)

https://github.com/SeleniumHQ/htmlunit-driver/blob/master/src/main/java/org/openqa/selenium/htmlunit/HtmlUnitDriver.java#L166

  /**
   * Constructs a new instance, specify JavaScript support
   * and using the {@link BrowserVersion#getDefault() default} BrowserVersion.
   *
   * @param enableJavascript whether to enable JavaScript support or not
   */
  public HtmlUnitDriver(boolean enableJavascript) {
    this(BrowserVersion.getDefault(), enableJavascript);
  }

还有https://github.com/SeleniumHQ/htmlunit-driver/blob/master/src/main/java/org/openqa/selenium/htmlunit/HtmlUnitDriver.java#L143-L158的其他构造函数

/**
   * Constructs a new instance with JavaScript disabled,
   * and the {@link BrowserVersion#getDefault() default} BrowserVersion.
   */
  public HtmlUnitDriver() {
    this(BrowserVersion.getDefault(), false);
  }

  /**
   * Constructs a new instance with the specified {@link BrowserVersion}.
   *
   * @param version the browser version to use
   */
  public HtmlUnitDriver(BrowserVersion version) {
    this(version, false);
  }

如果未提供变量,您会看到它们提供默认 false。

因此,要在 HtmlUnitDriver 中启用 javascript,您需要在初始化它时提供 true,即您希望 JavaScript 组件在其中处于活动状态。

WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_38, true);

【讨论】:

    猜你喜欢
    • 2012-05-18
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多