2016-04-12 4 views
2

klicken Ich habe versucht, eine Vielzahl von Möglichkeiten, klicken Sie auf ein bestimmtes Element im Browser mit Nightwatch.js (nth-Kind, nth-of- Typ usw.), und bis jetzt kann ich nicht das richtige Element finden. Ich versuche auf den 2. "Mehr" -Button auf dem Bildschirm zu klicken.Versuchen, auf das zweite Element mit der gleichen Klasse mit Nightwatch.js

enter image description here

Das HTML sieht wie folgt aus. Beide "Mehr" -Buttons haben die exakt gleiche Klasse und sind innerhalb eines Divs verschachtelt, das einen Hauptunterschied in der Klasse hat, in dem man discover-teams und das zweite in einem div mit einer Klasse von discover geschachtelt ist - Athleten. Wenn ich so etwas wie dies versuche, beende ich Klick auf einer der Folge Tasten auf dem Bild oben

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

enter image description here

Wenn jemand des besten Weges, weiß, dies zu tun, ich es sehr zu schätzen würde. Bis jetzt komme ich zu kurz. Viele

verpflichtet

Antwort

0

Ich sehe, dass die Seite zwei „.discover-Athleten“ hat, so dass die Wähler für die 2. Taste sein sollen:

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

Sie müssen das Symbol ‚>‘, um Wähler genauer.

Edit: es gibt nur 1 ".Discover-Athleten", aber es macht keinen Unterschied.

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

Ich sehe nur einen ".Discover-Athleten". Es gibt auch ".discover-Teams", aber nur jeweils eines. –

0

Versuchen Sie einen von ihnen.

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

ODER

browser.click('.discover-athletes.discover-card div:discover-card-load-more.discover-card-footer button'); 

ODER

browser.click('.discover-athletes.discover-card div:discover-card-load-more button'); 
0

landete ich eine Lösung zu finden, die funktioniert.

.click('.discover-athletes .discover-card-load-more') 

nur ein wenig zu halten benötigt Graben (dies ist mein erstes Mal eines Test-Framework verwenden versucht, für Elemente in HTML zu suchen). Aber ich schätze die Antwort, die Sie beide abgegeben haben. Prost

+0

Wissen Sie, ob dies überhaupt mit Nightwatch-Seitenobjekten funktioniert? –

+0

kann ich nicht sicher sagen. Ich habe Nightwatch seit ein paar Monaten nicht mehr benutzt, seit ich von der Firma entlassen wurde, für die ich die Testsuite gebaut habe. Letztendlich läuft es auf die Position des Elements im DOM hinaus und verweist genau darauf –