如何单击Selenium WebDriver中不可见的元素?

use*_*427 4 .net c# selenium selenium-webdriver

我想点击一个单选按钮,但有时会得到异常"隐形元素".我使用Thread.Sleep()函数,但没有.它有时不总是发生.我通常可以使用selenium web驱动程序单击单选按钮

wd.FindElement(By.XPath("//input[@value=2]")).Click();
Run Code Online (Sandbox Code Playgroud)

小智 11

想要点击隐藏元素时,使用javascript是一个不错的选择.Selenium无法对隐藏元素执行操作(即单击).javascript函数有两个选项:

  1. 第一个实际上将模拟点击

    ((IJavaScriptExecutor)wd).ExecuteScript("arguments[0].click();", wd.FindElement(By.XPath("//input[@value=2]")));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 第二个将简单地触发发生点击时应该发生的事件.

    ((IJavaScriptExecutor)wd).ExecuteScript("arguments[0].trigger('click');", wd.FindElement(By.XPath("//input[@value=2]")));
    
    Run Code Online (Sandbox Code Playgroud)