TransWikia.com

Selenium на Kotlin | Koltin

Stack Overflow на русском Asked on February 3, 2021

Пытаюсь разобраться с Selenium на Koltin. Мне нужно написать парсер, но проблема в том, что ресурс работает динамически (через скрипты), поэтому мне порекомендовали использовать Selenium, но что-то ничего не получается.

Важно! Я пишу мобильное приложение, поэтому не могу указать путь на своем диске, ведь при компиляции он потеряется. (моё предположение, но могу и ошибаться)

Подключил зависимости через Android Studio Project Structure:

implementation 'org.seleniumhq.selenium:selenium:2.0rc2'

Подключил плагин WebDriver по рекомендации с форумов:

apply plugin: 'com.github.erdi.webdriver-binaries' //in Module:app <

//in dependencies Project: name >
classpath("gradle.plugin.com.github.erdi.webdriver-binaries:webdriver-binaries-gradle-plugin:2.3") 

//in repositories Project: name >
    maven {
         url = uri("https://plugins.gradle.org/m2/")
    }

Пытаюсь взаимодействовать с сайтом:

val driver = ChromeDriver()
        driver.get("https://xn--80ac9aeh6f.xn--p1ai/books?order=new")
    waitUntilPageIsReady(driver)
    val links = driver.findElementsByClassName("BookListItem__title-link")
        .map { it.getAttribute("href") }

    links.forEach {
        Log.i("SeleniumIO", "$it is link?")
    }

private fun waitUntilPageIsReady (driver: ChromeDriver) {
    val executor = driver as JavascriptExecutor
    WebDriverWait (driver, 1)
        .until { executor.executeScript ( "return document.readyState" ) == "complete"}
}

Обновлено

Компиляция приложения происходит успешно, но при запуске все падает и выдает ошибку:

The path to the chromedriver executable must be set by the webdriver.chrome.driver system property

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP