Прииспользовании следующего кода:
IWebElement element = driver.FindElement(By.CssSelector("#loginBtn"));
element.Click();
Фото елемента:
Помогите пожалуйста.
Прииспользовании следующего кода:
IWebElement element = driver.FindElement(By.CssSelector("#loginBtn"));
element.Click();
Фото елемента:
Помогите пожалуйста.
а можно полюбопытствовать что происходит-то ?
Cбоку, есть лейбочка event, посмотрите на какой ивент настроено срабатывание события и после этого рекомендую изучить команду:
((IJavaScriptExecutor)driver).ExecuteScript(javaScript, args);
с ее помощью, вы можете любой ивент отправить на element
Добрый день.
ничего не происходит, браузер открыт, осуществлен переход на нужную страницу, далее нужно нажать на кнопку, но этого не происходит.
в листе ошибок ничего не выводится.
спасибо, обязательно посмотрю!
пример команды, привожу конечный результат, без использования параметров:
string javaScript = $"document.evaluate(\"{XPath}\", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.dispatchEvent(new MouseEvent(\"click\", {bubbles:true}))";
var javaScriptExecutor = (IJavaScriptExecutor) driver;
javaScriptExecutor.ExecuteScript(javaScript);
Что происходит с тестом после клика? Падает? С каким exception?
Догадки
Необходимо больше информации чтобы понять что происходит, судя по скриншоту консоли тесты выполняются в IE? Если так, то нужно для начала обновиться до последней версии. Т.е. нужно обновить браузер, драйвер и селениум библиотеки, после этого попробовить еще раз. Если не помогло, дальше проблему можно попробовить отловить в режиме отладки (debug), нужно пробовить найти элемен (посмотреть что возвращаеться), попытаться кликнуть тоже в режиме отладки, если не получилось, то попытаться изменить локатор, например вместо CssSelector
использовать Id
и т.д., если и это не помогло то как уже советовали попробуйте тоже в режиме отладки кликнуть соседние элементы и посмотреть что произойдет (родителя и если есть внутри элемента другие элементы, на скриншоте не видно что там дальше просто).
спасибо за помощь.
решил эту проблему так:
var _driver = new FirefoxDriver();
_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.FindElement(By.Id(“loginBtn”)).Click();
Только не используйте explicit wait в таком случае в проекте, если у вас implicit wait 5 секунд.
еще по моему можно просто ждать не страницы а собственно элемена по кот ударять потом
например (из другого проекта):
wait.Until(d => (d.FindElements(By.CssSelector("div[role='option']"))).Count > 0);