C Selenide очень легко начать автоматизаию тестирования

webdriver
selenide
Теги: #<Tag:0x00007f7b68cb7e48> #<Tag:0x00007f7b68cb7d08>

(Дмитрий Еремин) #1

Привет

Пишу тест

    @Before
    fun setUp(){
        Configuration.browser = "chrome"
        System.setProperty("webdriver.chrome.driver", "полный путь до chromedriver.exe")
    }

    @Test
    fun test() {
        open("http://ya.ru")
    }

Помник выглядит так

        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>selenide</artifactId>
            <version>${selenide.version}</version>
            <scope>test</scope>
        </dependency>
...

Версия 5.0.0

Получаю вот такую историю

java.lang.NoClassDefFoundError: org/openqa/selenium/InvalidArgumentException

	at com.codeborne.selenide.webdriver.WebDriverFactory.<init>(WebDriverFactory.java:21)
	at com.codeborne.selenide.drivercommands.LazyDriver.<init>(LazyDriver.java:33)
	at com.codeborne.selenide.SelenideDriver.<init>(SelenideDriver.java:38)
	at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.lambda$getSelenideDriver$0(WebDriverThreadLocalContainer.java:58)
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
	at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.getSelenideDriver(WebDriverThreadLocalContainer.java:57)
	at com.codeborne.selenide.WebDriverRunner.getSelenideDriver(WebDriverRunner.java:96)
	at com.codeborne.selenide.Selenide.open(Selenide.java:38)
	at com.rencap.fxmm.webback.single.uat.ui.FirstTest.test(FirstTest.kt:17)

Что я не так сделал?

UPD: без setUp() результат такой же


(Vasiliy Rakshin) #2

Попробуйте запустить без сетапа вообще (закомментите).


(Дмитрий Еремин) #3

без сетапа история такая же. Я его поэтому и добавил)

java.lang.NoClassDefFoundError: org/openqa/selenium/InvalidArgumentException

	at com.codeborne.selenide.webdriver.WebDriverFactory.<init>(WebDriverFactory.java:21)
	at com.codeborne.selenide.drivercommands.LazyDriver.<init>(LazyDriver.java:33)
	at com.codeborne.selenide.SelenideDriver.<init>(SelenideDriver.java:38)
	at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.lambda$getSelenideDriver$0(WebDriverThreadLocalContainer.java:58)
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
	at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.getSelenideDriver(WebDriverThreadLocalContainer.java:57)
	at com.codeborne.selenide.WebDriverRunner.getSelenideDriver(WebDriverRunner.java:96)
	at com.codeborne.selenide.Selenide.open(Selenide.java:38)
	at com.rencap.fxmm.webback.single.uat.ui.FirstTest.test(FirstTest.kt:16)

(Дмитрий Еремин) #4

Если дебагом полезть, ругается на метод
com.codeborne.selenide.impl.WebDriverThreadLocalContainer#getSelenideDriver()

@asolntsev, помогите, пожалуйста

Спасибо


(Борис Осипов) #5

покажи весь pom.xml. У меня с таким вот

 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.codeborne</groupId>
      <artifactId>selenide</artifactId>
      <version>5.0.0</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

все ок


(Дмитрий Еремин) #6

Из того, что имеет отношение к делу, вот

<properties>
        <kotlin.version>1.2.71</kotlin.version>
        <junit.version>4.12</junit.version>
        <selenide.version>4.2.1</selenide.version>
</properties>
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
        </dependency>
        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>selenide</artifactId>
            <version>${selenide.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
</dependencies>

(Борис Осипов) #7

и так тоже работает. покажи все зависимости, а лучше что показывает mvn dependency:tree ?


(Дмитрий Еремин) #8

Оставшиеся

 <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <version>4.0.1.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc42</artifactId>
            <version>4.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.jtds</groupId>
            <artifactId>jtds</artifactId>
            <version>1.2.5</version>
            <scope>runtime</scope>
        </dependency>

(Борис Осипов) #9

а <parent></parent> в pom не спринг бут ли?


(Дмитрий Еремин) #10

парентом у него другой модуль
а вот у предка - спринг бут


(Борис Осипов) #11

Тогда см https://github.com/selenide/selenide/issues/561


(Дмитрий Еремин) #12

оке
я добавил

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>${selenium.version}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-remote-driver</artifactId>
            <version>${selenium.version}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>${selenium.version}</version>
        </dependency>
    <selenium.version>3.14.0</selenium.version>

Проблема все та же


(Борис Осипов) #13

ну разбирайся дальше, какая там старая зависимость тянется спринг бутом и правь


(Евгений) #14

а так пробовали?

System.setProperty("selenide.browser", "chrome")

(asolntsev) #15

Всё-таки нужен именно вывод mvn dependency:tree