簡體   English   中英

groovy.lang.MissingPropertyException:沒有這樣的屬性:類的列數:Script1

[英]groovy.lang.MissingPropertyException: No such property: Cols for class: Script1

我有一個像下面這樣的清單

List<WebElement> Cols = Rows.get(i).findElements(By.tagName('td'))

我有一個像下面這樣的方法

 public def queryGenerator(Map inputs)
{
    def firstvalue = 'Cols.get('
    def Secondvalue = ').getText().equals('
    def thirdvalue = ')'
    def ampersand = '&'
    def value = ''

    inputs.each({ def k, def v ->
        int inum = Integer.parseInt(k);
        value = value + firstvalue+(inum-1)+Secondvalue+"\'$v\'"+thirdvalue+ampersand

    })
    return value.substring(0, value.length()-1)

}

現在我將使用 groovy 中的 Eval 來轉換這個表達式

String x = queryGenerator(values) //This will return Cols.get(0).getText().equals("some value")
if(Eval.me(x){}

這給出了以下錯誤

groovy.lang.MissingPropertyException: No such property: Cols for class: Script1

我已經檢查了大多數 Eval 使用字符串、對象和表達式的 groovy 文檔。 有什么辦法可以讓 Eval 識別列表。

一種可能的解釋是您正在從一個 groovy 腳本(即,只是一個xxx.groovy文件,代碼直接在文件中,沒有任何class聲明)運行它。 如果是這樣,請參閱例如此 stackoverflow 答案以獲取有關 groovy 腳本中變量范圍的信息。

長話短說,你這是一個可以嘗試的常規腳本:

Cols = Rows.get(i).findElements(By.tagName('td'))

(即沒有初始類型聲明)或

import groovy.transform.Field
...    
@Field List<WebElement> Cols = Rows.get(i).findElements(By.tagName('td'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM