单击使用硒的图形图标

时间:2019-10-07 12:10:29

标签: c# selenium protractor specflow

我无法在Angular8项目中单击图形图标。

2 个答案:

答案 0 :(得分:0)

您使用的XPath可能遇到问题。我建议使用一种直接在按钮元素上查询的内容:

    NgWebElement GraphIcon = ngDriver.FindElement(By.XPath("//button[contains(@class, 'btnItems') and *[contains(@class, 'fa-line-chart')]]"));

答案 1 :(得分:0)

您得到的异常OpenQA.Selenium.WebDriverTimeoutException发生在您的等待方法NgWebDriver.WaitForAngular()中。这表明WebDriver正在等待某些东西出现/可点击/等,但未达到等待时间限制。

只需从HTML的结构和类名中进行猜测,您尝试单击的元素就可以是其中之一;

  • 在另一个元素的内部/被另一个元素覆盖,即按钮内的i元素,还是您实际要在i元素下方单击的元素?
  • 该元素是隐藏的,并且硒被设计为不会使此类单击失败,因此它无法单击此元素。

我建议您尝试单击父元素,或者查看是否应单击另一个子元素。如果失败,您也可以尝试使用JavascriptExecutor单击

public void ClickUsingJquery(string selector) {
    string script = String.Format("jQuery(\"{0}\").click();", selector);
    TestContext.WriteLine("Script to execute: " + script);
    var javaScriptExecutor = this.driver as IJavaScriptExecutor; 
    javaScriptExecutor?.ExecuteScript(script);
}

(用任何选择您喜欢的元素的方式替换getElementById('{elementId}').click()selector参数)。