2016-04-09 8 views
1

Hallo Ziemlich neu zu watir und stieß auf dieses Problem. Wie kann ich auf die Schaltfläche im folgenden Code-Snippet wählenkann die Reac ID | nicht auswählen watir

<div id="side bar" class="sidebar"> 
<div class="inner active" data-reactid=".1"> 
<a class="back side bar" data-reactid=".1.0" href="#overview"> 
<h2 data-reactid=".1.1"> 
<div class="price clearfix" data-reactid=".1.2"> 
<div class="values type-current-value" data-reactid=".1.3"> 
<div class="values date-current-value" data-reactid=".1.4"> 
<div class="values duration-current-value" data-reactid=".1.5"> 
<div class="values passengers-current-value" data-reactid=".1.6"> 
<div class="values yacht-current-value" data-reactid=".1.7"> 
<div class="values flight-current-value" data-reactid=".1.8"> 
<div class="share-quote" data-reactid=".1.9"> 
<a class="share-quote cta-button cta-button-blue = share-quote-processed" data-reactid=".1.9.0" data-modal-url="/share-quote" href="#">Share this quote</a> 
</div> 

ich folgendes versuche, die eine keine Methode Fehler

b.links (produziert: xpath => ‚// div [@ class = "Share-Quote"]/a '). to_a.click

Antwort

2

Der Code versucht, auf ein Array von Links statt auf eine einzelne Verknüpfung zu klicken. Aus diesem Grund erhalten Sie einen undefinierten Methodenfehler.

Sie müssen auf einen bestimmten Link in der Sammlung klicken. Zum Beispiel:

# Click the first link 
b.links(:xpath => '//div[@class="share-quote"]/a').first.click 

# Click the last link 
b.links(:xpath => '//div[@class="share-quote"]/a').first.click 

# Click the nth link 
b.links(:xpath => '//div[@class="share-quote"]/a')[n].click 

Unter der Annahme, es gibt nur einen dieser Links auf der Seite ist, wäre es mehr Watir artig sein zu tun:

b.div(class: 'share-quote').link.click 
+0

Vielen Dank dafür. Ich habe festgestellt, dass diese Verbindung nur dann angezeigt wird, wenn der Benutzer die Seite in den entsprechenden Abschnitt bewegt. Also muss ich den vertikalen Scroll manuell verschieben, sonst wird der Test fehlschlagen. – rubytester

+1

Es gibt die Frage [wie man eine Webseite mit watir scrollt] (http://stackoverflow.com/q/13608890/1200545), die Ihnen bei der Bildlauffrage helfen kann. –

+0

Nochmals vielen Dank für Ihre Hilfe – rubytester