Как использовать GEB без использования управления зависимостью винограда

StackOverflow https://stackoverflow.com/questions/19825701

  •  05-07-2022
  •  | 
  •  

Вопрос

Я новичок в GEB и пытаюсь сделать быстрый тест, чтобы оценить его перед дальнейшим использованием. Из -за разрешений по доверенности и т. Д. Я хотел бы сделать это без использования винограда. Поэтому я попытался загрузить необходимые банки вручную и пытаюсь указать их в командной строке.

Однако при этом я получаю следующий класс, не найденный для WebDriverException:

C:\geb-test>groovy -cp geb-core-0.9.2.jar;selenium-htmlunit-driver-2.35.0.jar;selenium-support-2.35.0.jar GoogleTest
Caught: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
        at GoogleTest.run(GoogleTest.groovy:3)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriverException
        ... 1 more

C:\geb-test>

Мне нужны дополнительные банки? Если да, какие? Я попробовал несколько других, но без радости-как я отметил, что WebDriverexception находится в селена-API-2,35.0.jar, но это не имело никакого значения.

Итак, вот подробности, начиная с некоторой информации о версии:

  • Groovy Version: 2.1.7 JVM: 1.7.0_40 поставщик: Oracle Corporation OS: Windows 7

Для начала я использую простой пример встроенного сценария GEB который я поместил в файл с именем googletest.groovy:

import geb.Browser

Browser.drive {
    go "http://google.com/ncr"

    // make sure we actually got to the page
    assert title == "Google"

    // enter wikipedia into the search field
    $("input", name: "q").value("wikipedia")

    // wait for the change to results page to happen
    // (google updates the page dynamically without a new request)
    waitFor { title.endsWith("Google Search") }

    // is the first link to wikipedia?
    def firstLink = $("li.g", 0).find("a.l")
    assert firstLink.text() == "Wikipedia"

    // click the link 
    firstLink.click()

    // wait for Google's javascript to redirect to Wikipedia
    waitFor { title == "Wikipedia" }
}

Затем на основе Инструкции по установке GEB Я позаботился о том, чтобы у меня были упомянуты банки в аннотациях @grab. Это привело к тому, что мой тестовый каталог имел следующие файлы:

07/11/2013  10:46    <DIR>          .
07/11/2013  10:46    <DIR>          ..
06/11/2013  14:51           460,165 geb-core-0.9.2.jar
06/11/2013  15:13               711 GoogleTest.groovy
06/11/2013  14:55            56,189 selenium-htmlunit-driver-2.35.0.jar
06/11/2013  14:54           130,535 selenium-support-2.35.0.jar
               4 File(s)        647,600 bytes

А затем для полноты, я пытаюсь выполнить вышеупомянутое выполнение командной строки:

C:\geb-test>groovy -cp geb-core-0.9.2.jar;selenium-htmlunit-driver-2.35.0.jar;selenium-support-2.35.0.jar GoogleTest
Caught: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
        at GoogleTest.run(GoogleTest.groovy:3)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriverException
        ... 1 more

C:\geb-test>

Я начинаю задаваться вопросом, является ли проблема с несколькими банками с командной командной линией Groovy '-CP. Теперь я пытаюсь поместить банки в $ {user.home} .groovy lib Directory. Но тогда я в конечном итоге получаю не определенный класс для GebException. Может быть, вам нужно использовать виноград, чтобы иметь шанс получить эту работу. :/ Дай мне знать.

Это было полезно?

Решение

Хорошо, хорошо, что я сдался и решил попытаться заставить аутентификацию по доверенности работать.

Я решил попробовать с водителем Chrome, чтобы мои аннотации выглядели так:

@Grapes([
    @Grab("org.gebish:geb-core:0.9.2"),
    @Grab("org.seleniumhq.selenium:selenium-chrome-driver:2.26.0"),
    @Grab("org.seleniumhq.selenium:selenium-support:2.26.0")
])

Конечный результат заключается в том, что существует значительная цепочка зависимостей, поэтому, возможно, попытка вручную не рекомендуется. Если вы хотите сделать это, подготовьте свой путь класса с приведенным ниже.

И, выходя из пустого репозитория винограда, я закончил с этим (показан с «списком винограда»):

  • cglib cglib-nodep [2.1_3
  • com.google.guava guava [13.0.1
  • com.google.guava Guava-Parent [13.0.1
  • Commons-Codec Commons-Codec [1.6
  • общепринятое общинное общество [1.1.1
  • net.java.dev.jna jna [3.4.0
  • net.java.dev.jna платформа [3.4.0
  • org.apache Apache [4, 7, 9
  • org.apache.commons commons-exec [1.1
  • org.apache.commons commons-parent [17, 22, 5
  • org.apache.httpcomponents httpclient [4.2.1
  • org.apache.httpcomponents httpcomponents-client [4.2.1
  • org.apache.httpcomponents httpcomponents-core [4.2.1
  • org.apache.httpcomponents httpcore [4.2.1
  • org.apache.httpcomponents Project [6
  • org.gebish geb-ast [0.9.2
  • org.gebish geb-core [0.9.2
  • org.gebish geb-implice-assertions [0.9.2
  • org.gebish geb-waiting [0.9.2
  • org.json json [20080701
  • org.seleniumhq.selenium selenium-api [2.26.0
  • org.seleniumhq.selenium selenium-chrome-driver [2.26.0
  • org.seleniumhq.selenium selenium-parent [2.26.0
  • org.seleniumhq.selenium selenium-remote-driver [2.26.0
  • org.seleniumhq.selenium selenium-поддержка [2.26.0
  • org.sonatype.oss oss-parent [7
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top