繁体   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