【问题标题】:Is it possible to select element by attribute value with webdriverio是否可以使用 webdriverio 按属性值选择元素
【发布时间】:2016-05-30 17:58:49
【问题描述】:

我正在为 Web 应用程序编写 Jasmine 测试,并且我有一个这样的 div 元素:

<div data-param1="value1">
    <div>
        .....
    </div>
</div>

我正在使用 WebdriverIO 和 selenium 通过 WDIO Testrunner 运行我的测试。 我想根据 data-param1 属性的值来选择 div 元素。

到目前为止我尝试过的是:

browser.getText('div[data-param1*="value1"]');
browser.getText('div[data-param1="value1"]');
browser.getText('[data-param1*="value1"]');
browser.getText('[data-param1="value1"]');

但我没有成功...在Webdriver-IO selector docs 中我没有找到任何带有属性的选择器示例。

谁能告诉我是否可以通过 WebdriverIO 的属性值来选择一个元素?

如果有人设法进行了这样的选择,如果他/她能分享一个例子,我将不胜感激。

TIA

【问题讨论】:

    标签: javascript css attributes webdriver-io


    【解决方案1】:

    作为docs 状态:

    要查询具有特定名称属性的元素,您可以使用普通的 CSS3 选择器或 JsonWireProtocol 提供的名称策略,方法是将 [name="some-name"] 之类的东西作为选择器参数传递

    您的代码不起作用的原因是getText 将选择器与节点的文本内容相匹配。

    相反,您可以尝试:

    browser.element('[data-param1="value1"]');
    

    或将选择器直接传递给操作:

    browser.click('[data-param1="value1"]');
    

    【讨论】:

    • 你怎么能用*搜索来做到这一点,所以你不需要value1的确切短语会是browser.element('[data-param1*="val"]');吗?
    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2014-08-19
    • 2022-11-23
    • 2016-11-30
    相关资源
    最近更新 更多