我正在尝试使用Kotlin而不是Java以及Cucumber和Selenium在IntelliJ中创建一个简单的测试。但是,它似乎不像我想的那么直接。我已经安装了Kotlin并为该项目配置了它,没有与此相关的错误消息。
但是,仅是简单的事情,例如单击单选按钮,列表似乎很难在Kotlin中实现。没有错误信息。点击不会发生。
黄瓜行:
Og jeg har et konkret boligprosjekt
(Java)步骤定义:
@Og("^jeg har et konkret boligprosjekt$")
public void jegHarEtKonkretBoligprosjekt() {
//oppforePage.velgKonkretBoligprosjekt(); <-- Java
OppforePageK.Companion.velgKonkretBoligprosjekt(); <-- Kotlin
}
Java Page对象(可以正常工作):
@Slf4j
public class OppforePage {
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
private static WebElement lblsokerOmboligprosjekt;
private ExtendedWebDriver driver;
public OppforePage() {
this.driver = Browser.extendedDriver();
PageFactory.initElements(driver,this);
}
void velgKonkretBoligprosjekt() { lblsokerOmboligprosjekt.click(); }
...
Kotlin页面对象(不起作用):
import no.husbanken.e2e.rammeverk.selenium.driver.ExtendedWebDriver
import org.openqa.selenium.WebElement
import org.openqa.selenium.support.FindBy
import org.openqa.selenium.support.PageFactory
class OppforePageK() {
companion object {
var driver: ExtendedWebDriver = Browser.extendedDriver()
@FindBy(id = "lblsokerOmboligprosjekt")
private val lblsokerOmboligprosjekt: WebElement? = null
init {
PageFactory.initElements(driver,this)
}
fun velgKonkretBoligprosjekt() {
lblsokerOmboligprosjekt?.click()
}
}
}
(我已经删除了一些明显的导入等。)
当Kotlin尝试使用velgKonkretBoligprosjekt()方法单击该按钮时,该页面上没有任何反应。但是,没有错误消息,并且由于未单击按钮,因此测试继续并在后续步骤中失败。
有什么想法吗?我知道应该可以使用Kotlin,但是我似乎一直在碰壁,我无法弄清楚为什么将小的和简单的事情混为一谈却无法像我想的那样起作用。