无法使用 selenium C# 在自动搜索字段中发送值

问题描述 投票:0回答:1

我有 Angular Web 应用程序上的表格,我想填写并提交。表单中有一个字段是自动搜索字段。我尝试使用 SendKeys、Actions Class 和 JavaScript 在此字段中发送值,但直到我在该字段上实际键入任何字母之前,什么都不起作用。 以下是我用来自动化该字段的不同方法:-

  1. 动作action = new Actions(driver); action.MoveToElement(LocatorofElement).SendKeys("Value");
  2. driver.ExecuteJavaScript("arguments[0].value = 'Value';", LocatorofElement);
  3. IJavaScriptExecutor js = (IJavaScriptExecutor)驱动程序; js.ExecuteScript("var event=new KeyboardEvent('keydown',{key:'a'});arguments[0].dispatchEvent(event);", LocatorofElement);
  4. LocatorofElement.SendKeys("值");
c# selenium-webdriver
1个回答
0
投票

Angular Web 应用程序上的自动搜索字段似乎可能有一些特定的事件触发或验证,当您尝试使用 Selenium 发送值时,这些事件未得到满足。一种可能的解决方案是尝试触发关键事件,例如 keydown、keyup 和 keypress 事件以及发送值。

您可以尝试以下代码片段将值发送到自动搜索字段:

IWebElement element = driver.FindElement(By.LocatorofElement);
element.Click();
element.SendKeys("Value");
element.SendKeys(Keys.Enter);

通过在发送按键之前单击元素,可能会触发自动搜索字段正常工作所需的事件。此外,发送值后发送 Enter 键可能有助于在自动搜索字段中提交值。

尝试一下,看看它是否有助于在 C# 中使用 Selenium 将值发送到自动搜索字段。

© www.soinside.com 2019 - 2024. All rights reserved.