在类名称相同的元素中仅单击具有特定文本的1个元素

时间:2019-02-01 15:22:35

标签: javascript webdriver-io

我想按类名称查找元素列表, 然后单击所有包含特定文本的1个特定元素。

,而且我不希望使用nth-child()/ Xpath作为选择器,因为顺序可能会发生变化,因此(在我的情况下)使用组件内部的文本这样做更精确,但不确定是否可能。

这些是我到目前为止尝试过的=)

首先,只想确保是否可以找到所有元素,便成功了。

const list = broswer.elements('.EventFooter');
console.log(list.gettext());

输出

[ 'ALL JAN',
  'ALL FEB',
  'ALL MAR',
  'ALL APR', ]

然后我尝试了nth:child方法,它起作用了,单击正确的项目并成功重定向

var mar = broswer.element('.EventFooter:nth-child(3)');
mar.click();

但是这些都不是通过使用链选择器来工作的,也许我做错了

var mar = broswer.elements('.EventFooter').element('*=Mar');
var mar = broswer.elements('.EventFooter').element('=All Mar');
var mar = browser.element('.EventFooter').getText('All Mar');

mar.click();

输出

An element could not be located on the page using the given search 
parameters ('*=Mar') / ("=All Mar")/('All Mar') .

这是html代码

<div class="EventFooter">All Jan</div>
<div class="EventFooter">All Feb</div>
<div class="EventFooter">All Mar</div>
<div class="EventFooter">All April</div>

0 个答案:

没有答案