2011-11-04 6 views
10

Mi chiedevo, ho questo HTML:Come trovare un elemento nodo di testo con Mink?

<li> 
    <span class="jqTransformRadioWrapper"> 
    <a rel="choices[choices]" class="jqTransformRadio jqTransformChecked" href = "#"></a> 
    <input type="radio" id="choices_choices_5" value="5" name="choices[choices]" class="jqTransformHidden"> 
    </span> 
    <label for = "choices_choices_5" style = "cursor: pointer;">My awesome test</label> 
</li> 

Alcuni di voi potrebbero riconoscere che l'ingresso è stato jqTransformed

mi chiedevo come fare clic sull'etichetta il nome di "La mia prova impressionante" .

In questo momento, lo faccio:

$el = $this->getSession()->getPage()->find('css', 'ul li span.jqTransformRadioWrapper a'); 
    $el->click(); 

Ma seleziona il primo elemento. E voglio selezionarli con il loro Nome (e solo) per questo esempio sarebbe "My awesome test".

Grazie

risposta

13

Ecco la risposta:

$this->getSession()->getPage()->find('xpath', '//label[text()="My awesome test"]'); 
+0

Questo romperà quando si utilizza ZombieJS come il driver: XPaths per il driver Zombie non deve contenere il carattere '" 'o il server si blocca (su <= 1.3.1, non so 1.4.0+), invece usa 'find ('xpath'," // label [text() = 'My awesome test'] ");' – tonyhb