gpt4 book ai didi

javascript - Protractor 预期返回用括号而不是引号

转载 作者:行者123 更新时间:2023-11-28 21:04:16 24 4
gpt4 key购买 nike

我正在测试一个网页,需要使用这个转发器和模型来确保输入了正确的文本。

我尝试这样做是为了让预期的文本与我想要的相匹配:

expect(element.all(by.repeater('n in [].constructor(product.config.num_streamers) track by $index')).get(1).all(by.model('name.value')).getAttribute('value')).toEqual("testtext");

我的问题是它显示带括号的对象,而不仅仅是引号中的文本。这是我失败的异常: 预期 [ 'testtext' ] 等于 'testtext'。

失败的唯一原因是有带空格的左括号和右括号。有人可以帮我找到解决方案并解释为什么会出现括号吗?

最佳答案

您正在对元素数组(在 Protractor 中称为ElementArrayFinder)调用getText(),它返回一个promise解析为所有匹配元素的文本数组

因为您实际上需要单个元素,所以使用 .element 而不是 .all:

expect(element.all(by.repeater('n in [].constructor(product.config.num_streamers) track by $index')).get(1).element(by.model('name.value')).getAttribute('value')).toEqual("testtext");

补充说明:

  • 代替toEqual(),你也可以使用toContain()匹配器
  • 您不需要 by.repeater() 中的 track by 部分 - 它会被 Protractor 自动省略
  • 为了使代码更具可读性,在匹配器之外声明元素 - 或者,更好的是,应用 Page Object pattern :

    var elm = element.all(by.repeater('n in [].constructor(product.config.num_streamers)')).get(1).element(by.model('name.value'));
    expect(elm.getAttribute('value')).toEqual("testtext");

关于javascript - Protractor 预期返回用括号而不是引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41130270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com