如何使用Selenium Webdriver JavaScript单击元素?

时间:2019-06-18 09:26:19

标签: node.js selenium selenium-webdriver onclick click

我正在测试,必须单击元素,但是有时单击,有时没有。我尝试了一些解决方案,但是没有一个总是点击。 有什么解决方案可以单击元素,该元素始终有效?

我尝试了以下代码:

1:

array = [1, 2, 3]
for i in array:
    df = df.filter(df["column"] != i)

2:

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

3:

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

我将硒与node.js,javascript,chrome驱动程序配合使用。

4 个答案:

答案 0 :(得分:1)

尝试使用:

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

希望这会有所帮助!

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

在处理单击操作之前,请尝试睡眠。 示例如下:

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