使用局部变量调用时,量角器.get不是函数

时间:2019-05-17 18:49:04

标签: javascript protractor

请考虑以下代码:

option_settings:
  aws:elb:listener:443:
    ListenerProtocol: HTTPS
    SSLCertificateId: arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678
    InstancePort: 80
    InstanceProtocol: HTTP
  aws:elb:listener:
    ListenerEnabled: false

当我执行这段代码时,第一个console.log(console.log('Test Text ='+ await CL.DCBS_List_AllElements.get(3).getText());)返回预期的文本。但是对于下一个,当我将其用作变量(“ await DCBSItems.get(4).getText()”)时,它给了我以下错误:

  

失败:DCBSItems.get不是函数

这有点奇怪,因为当我使用参数/变量传递元素时,我可以得到返回的文本。我花了很多时间修复它,但现在无法正常工作。我们该如何解决?

1 个答案:

答案 0 :(得分:1)

如果您等待ElementArrayFinder,则将获得一个ElementFinders数组。参见https://github.com/angular/protractor/blob/master/lib/element.ts#L535

调用ElementArrayFinder.get(index)时,量角器将在ElementArrayFinder对象中获取index。如果等待ElementArrayFinder,则将获得一个数组。因此,在这种情况下,您将使用DCBSItems,而不是调用.get,而应调用await DCBSItems[4].getText()