尝试使用Nightwatch.js单击具有相同类的第二个元素

时间:2016-04-12 18:32:23

标签: javascript css-selectors nightwatch.js

我一直在尝试使用Nightwatch.js(nth-child,nth-of-type等)点击浏览器上的特定元素的许多不同方法,到目前为止我无法找到正确的元素。我想点击屏幕上的第二个“更多”按钮。

enter image description here

HTML看起来像这样。两个“更多”按钮具有完全相同的类,并且嵌套在类中具有键差异的div中,其中一个称为发现团队,第二个嵌套在具有发现类的div中-athletes。如果我尝试这样的话,我最终会点击图片上的其中一个按钮

.click('.discover-athletes div:nth-child(3) button')

enter image description here

如果有人知道最好的方法,我会非常感激。到目前为止,我的时间很短。很有责任

3 个答案:

答案 0 :(得分:0)

我看到该页面有两个" .discover-athletes"所以第二个按钮的选择器应该是:

'test' : function(browser){
       const 2ndSelector = 'div[class="discover-athletes"]:nth-child(2) > div:nth-child(3) > button';
       browser.click(2ndSelector);
          }

你需要符号">"使选择器更准确。

编辑:只有1" .discover-athletes"但它没有区别。

        'test' : function(browser){
           const 2ndSelector = 'div[class="discover-athletes"] > div:nth-child(3) > button';
           browser.waitForElementVisible(2ndSelector,5000,false,function(result){
                 browser.click(2ndSelector);
                          });              
                  }

答案 1 :(得分:0)

尝试其中任何一个。

var string = '{user: Jack}{user: Dave}{user: John}{user: Hou}';

OR

['{user: Jack}','{user: Dave}','{user: John}','{user: Hou}'] ?

OR

browser.click('.discover-athletes.discover-card div:nth-child(3) button');

答案 2 :(得分:0)

我最终找到了一个有效的解决方案。

  $(document).on('dragover', function(e){
     event.preventDefault();
  });

只需要继续挖掘(这是我第一次尝试使用测试框架在html中搜索元素)。但我很感谢你们提交的答案。干杯