Kotlin,黄瓜和硒-Kotlin无法与元素交互

我正在尝试使用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,但是我似乎一直在碰壁,我无法弄清楚为什么将小的和简单的事情混为一谈却无法像我想的那样起作用。

bestd 回答:Kotlin,黄瓜和硒-Kotlin无法与元素交互

@FindBy(id = "lblsokerOmboligprosjekt")
        private val lblsokerOmboligprosjekt: WebElement? = null

我会说这是问题所在。 val无法重新分配,请尝试将其更改为private var,否则什么都不会发生,因为您的WebElement为空

编辑:问题似乎与包装在同伴对象中的逻辑有关

本文链接:https://www.f2er.com/3159291.html

大家都在问