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

标签 javascript css attributes webdriver-io

我正在为 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

最佳答案

作为docs状态:

For querying elements with a specific name attribute you can eather use a normal CSS3 selector or the provided name strategy from the JsonWireProtocol by passing something like [name="some-name"] as selector parameter

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

相反,您可以尝试:

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

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

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

关于javascript - 是否可以使用 webdriverio 按属性值选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37531379/

相关文章:

html - 编号的圆形背景

html - 解释为什么这个元素不呈现在前面

.net - 创建一个属性来中断构建

variables - 将变量传递给xquery xpath属性查询

javascript - 显示 PDF 但不下载

javascript - 如何滚动到div内的ID?

javascript - 如何使用 TypeScript 更改 CSS 中的值?

javascript - 单击时在angularJS中隐藏和显示div

css - 使带有列的 flex 容器收缩以适合

c++ - 我可以遍历 C++ 类的(公共(public))属性吗?