GroovyCastException в Katalon при выполнении явного ожидания Selenium - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь выполнить явное ожидание в Katalon (который использует Groovy).У меня есть следующий код:

// wait on page change to "Dashboard"
    WebDriverWait dashboardChangeWait = new WebDriverWait(driver, 3)
    /* This is causing the following Exception : 
     *   - GroovyCastException : Attempt to cast 'true' with class 'java.lang.Boolean' to class
     *      'org.openqa.selenium.WebElement'
     * */
    WebElement element = dashboardChangeWait.until(
        ExpectedConditions.textToBe(By.cssSelector('.breadcrumb-item.active'), "DASHBOARD"))

, который дает мне GroovyCastException.Я знаю, что WebDriverWait.until принимает аргумент Function (да, JavaScript-подобная кодировка!), И что ExpectedConditions.textToBe возвращает ExpectedCondition<Boolean>, а подпись until равна V org.openqa.selenium.support.ui.FluentWait.until(Function<Object, Object<V>> arg0).Есть ли способ выполнить этот тип ожидания в Katalon, который позволяет избежать этой проблемы?

1 Ответ

0 голосов
/ 06 июня 2018

Вы были довольно близко.Метод ExpectedConditions textToBe() определяется следующим образом:

public static ExpectedCondition<java.lang.Boolean> textToBe(By locator, java.lang.String value)

An expectation for checking WebElement with given locator has specific text

Parameters:
locator - used to find the element
value - used as expected text

Returns:
Boolean true when element has text value equal to @value

Так что вам просто нужно изменить тип возвращаемого значения на boolean вместо WebElement следующим образом:

Boolean status = dashboardChangeWait.until(ExpectedConditions.textToBe(By.cssSelector('.breadcrumb-item.active'), "DASHBOARD"))
...