2

我正在尝试在 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 返回 aExpectedCondition<Boolean>until的签名是V org.openqa.selenium.support.ui.FluentWait.until(Function<Object, Object<V>> arg0). 有没有办法在 Katalon 中执行这种等待,从而避免这个问题?

4

1 回答 1

2

你非常接近。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"))
于 2018-06-06T20:04:12.527 回答