Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как обновить ChromeDriver используя Selenide+Appium?

kotlin
java
selenide
mobile
appium
Теги: #<Tag:0x00007fedc75cd098> #<Tag:0x00007fedc75ccf58> #<Tag:0x00007fedc75ccda0> #<Tag:0x00007fedc75ccbe8> #<Tag:0x00007fedc75cca58>

(Alex M) #1

Привет.
Тест упорно использует chromedriver=2.33.506120 и из-за этого валится на <input> элементах. Есть такой же тест на Селениде - работает ОК с версией chromedriver=2.37.
Ошибка: SEVERE: org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'.

Я пробовал force download через WebdriverManager. Пробовал указать путь к ChromeDriver. Не помогает.

Koltin 1.2.31
Selenide:4.11.1
Appium:java-client:5.0.4
Appium: 1.7.2

EDIT: Заработало с capa.setCapability("chromedriverExecutable", "PATH"), но почему Селенид не обновляет ХромДрайвер сам через WebDriverManager?
Я чувствую, что я что-то пропустил…


(Yaroslav Pernerovskyy) #2

Возможно два варианта: у вас есть пака, которая прописана в $PATH и в которой лежит проблемный драйвер (сделайте в консольке chromedriver --version, если сработает, то значит это так и есть) второй вариант, у вас лежит хромдрайвер в кореневой папке проекта.


(Alex M) #3

Спасибо за ответ, но в $PATH ничего не прописано и в консоли ничего не выводится.

Selenide использует WebdriverManager и я не уверен, как он ставится)


(Денис Козачек) #4

Попробуй так, если нет то попробуй раскоментировать строку ChromeDriverManager.getInstance().setup();
@BeforeTest
@Parameters(“browserName”)
public void setUp(@Optional(“chrome”) String browser) {
Configuration.timeout = 7000;
Configuration.savePageSource = true;
Configuration.browserSize = “1920x1080”;
Configuration.browser = browser;

// Автоматическое стягивание актуальной версии драйвера с гугла
// ChromeDriverManager.getInstance().setup();

}

(Alex M) #5

Ничего не помогает :frowning:

Вот инициализация:
может че натупил

    lateinit var driver: AppiumDriver<SelenideElement>
    private val appiumServer = AppiumRunAndStop()

	@BeforeTest
        @Parameters("platform")
	fun setUp(platform : String) {
        appiumServer.restartServer()
        when (platform) {
            "Android" -> {
                val capa = DesiredCapabilities()
                capa.setCapability("automationName", "Appium")
                capa.setCapability("platformName", "Android")
                capa.setCapability("platformVersion", "8.1.0")
                capa.setCapability("deviceName", "Nexus 6P")
                capa.setCapability("browserName", "Chrome")
                capa.setCapability("unicodeKeyboard", true)
                capa.setCapability("resetKeyboard", true)
                // с строчкой ниже - работает, но я хочу, чтобы оно само скачивало последнюю версию
                capa.setCapability("chromedriverExecutable", "путь\\chromedriver_win32\\chromedriver.exe")
                driver = AppiumDriver(URL("http://127.0.0.1:4723/wd/hub"), capa)
                sleep(2000)
                WebDriverRunner.setWebDriver(driver)

            }
            "iOS" -> {
                //TO DO
            }
            else -> println("Platform is not correct")
        }
        Configuration.baseUrl = "мой_сайт"
	}

Спасибо


(vmaximv) #6

Это не очень здравая мысль автоматом обновлять хром драйвера на эппиуме. Слишком часто новые версии драйвера ломают все к чертям. Плюс новые версии обычно требуют обновления веб-вью - что есть не очень тривиальная задача на эмуляторах и кастомных прошивках.


(Alex M) #7

понял. спасибо.