因此,我尝试将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使用以下名称登录:
-线程2使用以下名称登录:
(...)
-线程20使用以下名称登录:
但是我的问题是:
Kotlin为什么不说: Unresolved reference :参数3?
最佳答案
您可以将其存储在类范围变量中class myClass(val parameter1 : String, var parameter2 : String, var parameter3 : Int)
。
如您所示,它只是在构造函数中消失的变量。
关于multithreading - 使用多线程时Kotlin无法解析的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60062832/