是否可以使用webdriverio按属性值选择元素

时间:2016-05-30 17:58:49

标签: javascript css attributes webdriver-io

我正在为网络应用编写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

1 个答案:

答案 0 :(得分:1)

作为docs州:

  

对于查询具有特定名称属性的元素,您可以通过传递类似[name =&#34; some-name&#34;]作为选择器参数的内容来使用普通的CSS3选择器或JsonWireProtocol中提供的名称策略

您的代码无效的原因是getText将选择器与节点的文本内容相匹配。

相反,您可以尝试:

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

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

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