如何使用C#单击Selenium WebDriver中不可见的元素?

时间:2018-11-16 10:17:34

标签: selenium-webdriver

我的代码是:

Actions a = new Actions(driver);
            a.MoveToElement(driver.FindElement(By.LinkText("Master Data"))).Build().Perform();
            driver.FindElement(By.LinkText("Suppliers")).Click();

但是它不起作用

1 个答案:

答案 0 :(得分:0)

您有两种方法。硒已专门编写为不允许与隐藏元素进行交互。理由是,如果一个人不能执行该动作,那么硒也不应执行该动作。因此,要通过Selenium执行点击,您必须执行用户要使该按钮可见的操作(例如,鼠标悬停事件,单击另一个元素等),然后在可见后执行该单击。

但是,Selenium确实允许您在元素的上下文中执行Javascript,因此即使隐藏了click事件,您也可以编写Javascript来执行click事件。

  

要单击隐藏的元素,可以将JavascriptExecutor与   参数“ arguments [0] .click();”

element = driver.FindElement(By.LinkText("Suppliers")).Click();
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);