我的代码是:
Actions a = new Actions(driver);
a.MoveToElement(driver.FindElement(By.LinkText("Master Data"))).Build().Perform();
driver.FindElement(By.LinkText("Suppliers")).Click();
但是它不起作用
答案 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);