Mit css Kind-Selektor in der ruby-selenium-webdriver element find_elements

Ich möchte vermeiden, mit Hilfe von XPath-wo möglich, bei der die Suche nach Elementen in webdriver, aber in der Lage sein, um die Referenz child-Elemente von bereits gefundenen Elemente z.B.

Für den folgenden html-Code:

<div id="myelement">
    <table class="myclass">
       <tbody>
           <tr>
               <td>something</td>
               <td>
                   <table>
                       <tbody>
                           ...
                       </tbody>
                   </table>
               </td>
           </tr>
           <tr>
               ...
           </tr>
       </tbody>
    </table>
</div>

Ich habe ein css-Ausdruck:

Treiber.find_elements('div#myelement Tabelle.myclass > tbody > tr')

Ich will brechen diese in die table-element und die Zeilen, die zimmerreserviereung, ohne das Sie verweisen zurück auf die Tabelle Ausdruck. z.B. für XPath:

table = driver.find_element(:xpath, "//div[@id='myelement']//table[@classname='myclass']")

rows = table.find_elements(:xpath, 'tbody/tr')

Habe ich versucht, das folgende, das funktioniert mit JQuery $('div#myelement Tabelle.myclass').find('> tbody > tr')

table = driver.find_element(:css, 'div#myelement table.myclass')

rows = table.find_elements(:css, '> tbody > tr')

Dies verursacht einen Fehler `assert_ok': Eine ungültige oder illegale Zeichenfolge angegeben wurde (Selenium::WebDriver::Error::UnknownError)

Entfernen des ersten '>' funktioniert natürlich, jedoch bedeutet decendant tbody s ausgewählt sind, und nicht nur die unmittelbaren Kinder.

Wie kann ich dies korrekt mit css?

  • Dies tut table.find_elements(:xpath, 'tbody/tr') Arbeit?
  • Können Sie zeigen Sie Ihre endgültige Zweck der Prüfung?
  • Wie oben erwähnt, es funktioniert, aber ich würde lieber nicht verwenden, um xpath-für einmalige Ausgaben.
  • der einzige Zweck ist, so kann ich wickeln Sie die Tabelle in ein PageObject (oder zumindest ein widget), und die Objekt-handle das abrufen von Zeilen. Ich bin nicht wirklich mit webdriver als ein test, aber einen Roboter zu ziehen, Daten von einer website.
InformationsquelleAutor Andy | 2013-08-25
Schreibe einen Kommentar