gpt4 book ai didi

Protractor Js 测试 - 如何使用 :contains ('someText' ) - possibly escaping strings incorrectly

转载 作者:行者123 更新时间:2023-12-01 00:43:34 26 4
gpt4 key购买 nike

我有一个需要测试的角度形式,我想通过它的 textnode 内容选择一个没有身份的项目。在其他平台上的 jquery 和 selenium 中,我能够使用一个名为 :contains() 的特殊 css 选择器,它允许我查找内容

ptor.findElement(protractor.By.css('label:contains(\'some text\') > input')).getAttribute('value').then(function (value) {
expect(value).toContain('myExpectedValue');
});

当我运行它时,我得到一个关于无效字符串的词法错误。我尝试了多种方法来转义字符串中的引号。我还尝试了一个 xpath 表达式,它在引入引号后做了同样的事情。它看起来像这样:
ptor.findElement(protractor.By.xpath('//label[text()="some text"]/descendant::input[1])')).getAttribute('value').then(function (value) {
expect(value).toContain('myExpectedValue');
});

那以同样的方式失败了。

1: Protractor 中是否提供 :contains selenium 功能?
2:我转义字符串错了吗?

请不要告诉我将身份附加到对象上。我不允许修改标记。

最佳答案

  • 您不能将 :contains 与 protractor.By.css 定位器一起使用,因为 :contains 不是 CSS3 规范的一部分(请参阅 here )
  • 我不知道你的 xpath 有什么问题,但这不是逃避。我在 Protractor 中使用过这样的 xpath 字符串。

  • 更新:

    为了响应缺少‘:contains’选择器,为此目的创建了一个新的定位器:

    示例: By.cssContainingText('ul .pet', 'Dog') 将查找所有 ul 子类,类为 'pet' 包含文本'Dog'。阅读更多相关信息 here

    注:您可能需要更新,因为旧版本的 Protractor 没有这个选择器。

    关于 Protractor Js 测试 - 如何使用 :contains ('someText' ) - possibly escaping strings incorrectly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904903/

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