我正在尝试在 IntelliJ 中创建一个简单的测试,使用 Kotlin 而不是 Java,以及 Cucumber 和 Selenium。然而,它似乎并不像我想的那样直截了当。我已经为项目安装了 Kotlin 并对其进行了配置,并且没有与此相关的错误消息。
然而,像单击单选按钮 ia 列表这样简单的事情在 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 页面对象(按预期工作):
@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 来实现这一点,但我似乎经常遇到小墙,我无法弄清楚为什么看似小而简单的事情并不能像我想的那样工作。