2017-09-07 4 views
1

J'ai lutté et j'ai essayé plusieurs choses. Désolé si mon formatage est pas correct, mais de toute façon, l'élément en question que je dois cliquer est:Comment puis-je cliquer sur un bouton avec Javascript: void (0) Selenium?

<button href="javascript:void(0)" id="payNewBeneficiary" class="button-new-payee"> 
              <div class="icon"> 
               <div></div> 
              </div> 
              <h2>Someone new</h2> 
              <p>Make a once-off payment or pay someone new</p> 
             </button> 

Jusqu'à présent, j'ai essayé de trouver l'élément par ID, cssSelector et XPath. J'ai aussi essayé cette

Actions act = new Actions(driver); 
act.moveToElement(payNewBeneficiaryButton); 
act.click(payNewBeneficiaryButton); 
     act.build().perform(); 

Outre cette

((JavascriptExecutor)driver).executeScript("document.getElementById('payNewBeneficiary').click()"); 

Et ce

JavascriptExecutor exec = (JavascriptExecutor) driver; 
exec.executeScript("arguments[0].click()", payNewBeneficiaryButton); 
+2

Vous sortez la souris de votre ordinateur, positionnez le pointeur juste au-dessus de l'élément et appuyez sur le bouton gauche de la souris. C'est comme ça que vous cliquez sur un bouton. Bien sûr, si c'est "annulé", rien ne se passera jamais quand vous cliquez dessus. – adeneo

+0

'href' dans les boutons est un attribut personnalisé, il n'a pas d'action par défaut. – Teemu

+1

Je me bats en essayant de comprendre exactement ce que vous voulez ici. Vous obtenez une erreur? Adeneo a aussi raison, s'il est "annulé", il ne fera jamais rien quand vous le cliquerez. Que se passe-t-il lorsque vous cliquez dessus avec votre souris? – IamBatman

Répondre

0

Ainsi, le problème est que l'élément n'a pas été cliquable. J'ai utilisé le code suivant pour faire d'abord défiler la page jusqu'à ce que l'élément ne soit pas obstrué.

wait.until(ExpectedConditions.elementToBeClickable(payNewBeneficiaryButton)); 
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();",payNewBeneficiaryButton); 
payNewBeneficiaryButton.click(); 

Merci d'avoir essayé d'aider les gars. Appréciez-le.

1

essayer ces derniers

driver.findElement(By.css("<one of the below css>")).click() 

css vous pouvez essayer

button#payNewBeneficiary div div 
button#payNewBeneficiary div 
button#payNewBeneficiary h2 
button#payNewBeneficiary p 

Parfois, l'écoute peut être un élément enfant spécifié