![](/img/trans.png)
[英]Jenkins groovy.lang.MissingPropertyException: No such property: for class: 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.