Вы должны использовать оператор селена, ожидающий нажатия до нажатия, эта ошибка произошла, потому что она все еще не появилась в DOM или все еще не активна. Пример кода:
var webDriver= new ChromeDriver(Constants.DriverPath);
WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(5));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.ClassName('button-class')));
Затем после этого вы можете выполнить свою операцию:
var buttonElement = await webDriver.FindElement(By.ClassName('button-class'));
await buttonElement.Click();
В JavaScript нет кликабельности, но вы можете проверить наличие видимых и включить состояние, например:
driver.findElement(webdriver.By.name('q')).then(function (element) {
driver.wait(function () {
return element.isDisplayed().then(function (displayed) {
if (!displayed)
return false;
return element.isEnabled();
});
});
element.sendKeys('webdriver');
});