如何使用 Selenium webdriver javascript 单击一个元素?

How to click an element with Selenium webdriver javascript?

我正在测试,我必须点击元素,但有时会点击,有时不会。我尝试了一些解决方案,但没有一个总是点击。 是否有任何解决方案可以单击始终有效的元素?

我试过这些代码:

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()");

我将 selenium 与 node.js、javascript、chrome 驱动程序一起使用。

尝试使用:

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

希望对您有所帮助!

尝试使用 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();          

感谢您的帮助。问题不在我的代码中。问题出在 https://www.facebook.com/ 上。 因为 facebook 正在更改 ID,有时它是登录按钮有时是性别自定义按钮。 :/

请在处理点击操作之前尝试休眠。 示例如下:

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