Kotlin неразрешенная ссылка при использовании многопоточности - PullRequest
1 голос
/ 04 февраля 2020

Поэтому я пытаюсь использовать kotlin вместе с селеном и потоками, но один параметр не работает. Вот мой код:

class myClass(parameter1 : String, parameter2 : String, parameter3 : Int) : Thread(){
    init{
        var driver : ChromeDriver = ChromeDriver()
    }
    override fun run() {
        driver.get("somewebsite")
        var id_field = driver.findElementByName("iD")
        id_field.sendKeys(parameter1)
        id_field.submit()
        name = parameter2 + parameter3.toString()
        //At this Point, Intellij Idea tells me: Unresolved reference: parameter3
        name_field = driver.findElementByName("name")
        name_field.sendKeys(name)
        name_field.submit()


        }
}

fun main() {
        System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver")
        val threads: Array<myClass> = Array(2) { myClass("some_id", "name", it)}

    }

Что должно произойти, это то, что скрипт переходит на мой сайт, вводит имя и iD. Но я хочу иметь возможность запускать несколько потоков моего скрипта, где к моему имени добавляется «итерация» потоков (то есть параметр 3).

Так, например: - поток 1 входит в систему с: name1 - поток 2 входит в систему с: имя2 (...) - поток 20 входит в систему с: имя20

Но мой вопрос таков: почему kotlin не говорит: неразрешенная ссылка: параметр 3?

1 Ответ

0 голосов
/ 04 февраля 2020

Вы можете сохранить его в переменной области видимости типа class myClass(val parameter1 : String, var parameter2 : String, var parameter3 : Int). Как вы показываете, это просто переменная, которая умирает в конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...