Исключение, которое вы получаете, 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
любым способом выбора элемента, который вы предпочитаете).