2015-07-22 1 views
0

Je tente de cliquer sur un bouton de cette page à l'aide d'une commande PhantomJSDriver() et d'une commande click() sans tête, mais il se bloque pendant environ une demi-minute et prétend ne pas pouvoir trouver l'élément . Comment puis-je identifier correctement le bouton et simuler cliquantImpossible de cliquer sur le bouton avec le navigateur Sélénium sans tête

Mon extrait de code:

driver.findElement(By.xpath("//input[@class='btn btn-primary btn-xs' and @type='button']")) 
.click(); 

Le message d'erreur:

[ERROR - 2015-07-22T23:01:51.589Z] WebElementLocator - 
_handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1437606111543 

L'élément inspecté:

<td ng-show="hit.HITStatus == 'Unassigned'" class="col-sm-1"> 
    <a href="www.theurl.com"> 
     <button type="button" class="btn btn-primary btn-xs">What the button says</button> 
    </a> 
</td> 

Répondre

-1

Regardez ... Code de

class="btn btn-primary btn-xs" 

signifie que cet élément est attribué pas à la classe "BTN BTN primaire BTN-xs", ses moyens que cet élément est affecté à 3 classes différentes: "btn" "//input[@class='btn btn-primary btn-xs' and @type='button']" car il n'y a pas de classe existe =) vous devez changer cette XPath plus correctement: par ce XPath « BTN-primaire » « BTN-xs »

cela signifie donc que vous ne trouvez pas cet élément:

".//input[@class='btn-xs' and @type='button']" 

et dans ce cas il ne trouvera pas le bouton correct (il trouvera, mais pas correct, je pense). Vous devez construire un meilleur xpath avec certains éléments parents inclus ....