2
votes

Comment cliquer sur un élément avec Selenium webdriver javascript?

Je teste, et je dois cliquer sur des éléments, mais parfois ça clique, parfois pas. J'ai essayé quelques solutions, mais il n'y en a pas une, qui clique toujours. Existe-t-il une solution pour cliquer sur un élément, qui fonctionne toujours?

J'ai essayé ces codes:

1:

await driver.executeScript("document.getElementById('u_0_a').click()");

2:

var element = await driver.findElement(By.id("u_0_a"));
await element.click();

3 :

await driver.findElement(By.id("u_0_a")).click();

J'utilise le sélénium avec node.js, javascript, pilote chrome.


1 commentaires

La fonction click () dans JavaScript n'exécute aucun gestionnaire d'événements "click".


4 Réponses :


1
votes

Essayez d'utiliser:

var element = await driver.findElement(By.id("u_0_a"));
await driver.executeScript("arguments[0].click();", element)

J'espère que cela vous aidera!


1 commentaires

Merci pour l'aide, mais c'est la même chose :( Parfois cliquez, parfois pas. :(



0
votes

Essayez d'utiliser TryUntil . J'espère que cela fonctionne. Le code ci-dessous est en C #

Browser.TryUntil(() => { }, () => Browser.FindElement(By.id("u_0_a")).Exists(), TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(120));
Browser.FindElement(By.id("u_0_a")).Click();          


1 commentaires

Eh bien, c'est C #, mais j'essaye de l'écrire en JS.



0
votes

Merci pour votre aide. Le problème n'était pas dans mon code. Le problème venait de https://www.facebook.com/ . Parce que Facebook, change l'ID, et parfois c'était le bouton de connexion parfois un bouton personnalisé de genre. : /


0 commentaires

-1
votes

Veuillez essayer de dormir avant de gérer l'opération de clic. Exemple comme ci-dessous:

await driver.sleep(2000)
await driver.findElement(By.xpath('element path')).click()


0 commentaires