Как щелкнуть элемент с помощью веб-драйвера Selenium javascript? - PullRequest
1 голос
/ 18 июня 2019

Я тестирую, и мне приходится нажимать на элементы, но иногда они щелкают, иногда нет. Я пробовал некоторые решения, но нет ни одного, который всегда щелкает. Есть какое-то решение, чтобы нажать на элемент, который всегда работает?

Я пробовал эти коды:

1

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

2

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

3:

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

Я использую селен с node.js, JavaScript, драйвером Chrome.

Ответы [ 4 ]

1 голос
/ 18 июня 2019

Попробуйте использовать:

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

Надеюсь, это поможет!

0 голосов
/ 20 июня 2019

Пожалуйста, попробуйте спать, прежде чем обрабатывать операцию щелчка.Пример как ниже:

await driver.sleep(2000)
await driver.findElement(By.xpath('element path')).click()
0 голосов
/ 19 июня 2019

Спасибо за вашу помощь. Проблема была не в моем коде. Проблема была с https://www.facebook.com/. Потому что Facebook меняет идентификатор, и иногда это была кнопка входа, иногда пользовательская кнопка пола. : /

0 голосов
/ 18 июня 2019

Попробуйте использовать TryUntil.Я надеюсь, что это работает.Код ниже находится в 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();          
...