Я пытаюсь создать простой тест в IntelliJ, используя Kotlin вместо Java, наряду с Cucumber и Selenium. Тем не менее, это не так просто, как я. Я установил 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 (который работаеткак и ожидалось):
@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, но я, кажется, постоянно сталкиваюсь с небольшими стенами, где не могу понять, почему кажущиеся маленькими и простыми вещи не работают так, как я думаю.