org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: исключение, вызывающее getOffsetTop с HtmlUnitDriver & Selenium - PullRequest
0 голосов
/ 08 февраля 2019

Всякий раз, когда я пытаюсь установить HtmlUnit enableJavaScript в true, он возвращает эту ошибку:

org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: Exception invoking getOffsetTop

Я устанавливаю его в true с этим:

driver = new HtmlUnitDriver(true);

Перед установкой enableJavaScript (true)Я получаю сообщение об ошибке с этой конкретной строкой кода:

WebElement checkoutEmail = driver.findElement(By.id("checkout_email"));
javascriptExecutor.executeScript("arguments[0].value='abc@gmail.com';", checkoutEmail);

Предыдущее сообщение об ошибке:

java.lang.UnsupportedOperationException: Javascript is not enabled for this HtmlUnitDriver instance

Таким образом, после установки значения true я получаю еще одну совершенно новую ошибку, Обновление Я исправил это, добавив следующее:

public class CustomHtmlUnitDriver extends HtmlUnitDriver {


    @Override
    protected WebClient modifyWebClient(WebClient client) {
        WebClient modifiedClient = super.modifyWebClient(client);
        modifiedClient.getOptions().setThrowExceptionOnScriptError(false);}}

И затем я добавил ((CustomHtmlUnitDriver) driver).setJavascriptEnabled(true);

1 Ответ

0 голосов
/ 08 февраля 2019

Это сообщение об ошибке ...

org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: Exception invoking getOffsetTop

... означает, что ваша программа обнаружила ScriptException исключение.

Еще немного информации о версии двоичных файловвы используете, помогли бы нам отладить основную причину лучше с точки зрения:

  • Selenium
  • HtmlUnitDriver

Тем не менее, вы можете использовать указанные ниже конфигурацию и решение:

  • Конфигурация:

    • Селен : 3.14.0
    • HtmlUnitDriver : 2.33.0
  • Блок кода:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.htmlunit.HtmlUnitDriver;
    
    
    public class A_HtmlunitDriver_2_33_0 {
    
        public static void main(String[] args) throws InterruptedException {
    
        WebDriver driver = new HtmlUnitDriver();
        driver.manage().window().maximize();
        driver.get("https://stackoverflow.com/questions/53812207/how-to-resolve-htmlunit-wrapsdriver-error");
        System.out.println("HtmlUnitDriver invoked");
        driver.quit();
        }
    }
    
  • Консольный вывод:

    HtmlUnitDriver invoked
    19:10:32.092 [main] DEBUG com.gargoylesoftware.htmlunit.WebWindowImpl - destroyChildren
    19:10:32.093 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection manager is shutting down
    19:10:32.094 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-1: Close connection
    19:10:32.095 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-0: Close connection
    19:10:32.096 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection manager shut down
    
...