#javascript #c# #.net #selenium
Вопрос:
Я пробовал кучу решений, таких как неявное ожидание — это не работает, текстовое поле доступно для мыши, но недоступно для клавиатуры, поэтому значения нельзя вводить, но по текстовому полю можно щелкнуть.
У меня также есть это решение
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
IWebElement element = driver.FindElement(By.Name("InvoiceAmount"));
js.ExecuteScript("arguments[0].value='100';", element);
это ничего не делает и также не дает никаких ошибок. Пожалуйста, помогите. Спасибо.
Комментарии:
1. Можете ли вы поделиться HTML в текстовом формате здесь ?
Ответ №1:
Это из-за того, что вы нашли неправильный элемент. Ты нашел <app-currency-input>
. Но вы должны получить вложенный ввод (собственный <input>
элемент).
Попробуй это:
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
IWebElement element = driver.FindElement(By.Name("InvoiceAmount"));
ReadOnlyCollection<IWebElement> inputElements = element.FindElements(By.TagName("input"));
js.ExecuteScript("arguments[0].value='100';", inputElements[0]);
Комментарии:
1. Большое спасибо, это работает.
Ответ №2:
Вы пробовали найти элемент и нажать кнопку перед отправкой ключей?
IWebElement element = driver.FindElement(By.Name("InvoiceAmount"));
Action.MoveToElement(element,0,0).Click().Build().Perform();