knockout.js 敲除js selenium web驱动程序接受文本输入

b5buobof  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(140)

我有一个文本框和按钮,我在其中使用了knockout js绑定,如下所示

<textarea id="txtSite" cols="40" rows="5" data-bind="value: cellSite" data-required-msg="required" required="required" class="k-valid"></textarea>
 <button id="btnSubmit" value="Submit" data-bind="click: SubmitCell">Submit</button>

我试图通过在文本框中输入一些所需的文本并提交来自动使用Selenium,但它总是触发验证,即使值存在。如何使按钮理解文本框中输入的值

driver = new EdgeDriver(@"C:\Tools\EdgeDriver");
  driver.Url = "myurl";
  driver.Manage().Window.Maximize();
  Thread.Sleep(3000);
  Helper.SendKeys(driver, By.Id("txtSite"), "xyz");
  WebElement submitBtn = (WebElement)driver.FindElement(By.Id("btnSubmit"));
  Helper.JavaScriptClick(driver, submitBtn);

我一直收到提示,要求在文本框字段中输入值,有办法处理此问题吗

hgc7kmma

hgc7kmma1#

好的,这是我发现的,它和预期的一样工作

Helper.SendKeys(driver, By.Id("txtSite"), "test");
Thread.Sleep(2000);
IJavaScriptExecutor jse = (IJavaScriptExecutor)driver;
IWebElement webElement = driver.FindElement(By.Id("txtSite"));
jse.ExecuteScript("$(arguments[0]).change();", webElement);
tkclm6bt

tkclm6bt2#

无法使用Selenium进行测试,但我建议尝试textInput绑定,与值绑定不同,textInput提供来自DOM的即时更新。
看起来您正在手动切换该更改事件,这相当于作为用户单击退出输入(触发更改事件)-单击提交按钮。
https://knockoutjs.com/documentation/textinput-binding.html

相关问题