我正在使用selenium自动化来自动化第三方网站。为了在表单中设置输入字段的值,我使用了SendKeys()方法。它的工作没有任何问题,但问题是,在表单中有太多的输入字段,需要5-6秒来填写一个表单,我需要像这样填写多个表单。我知道它也可以使用JavascriptExecutor实现自动化,如下所示
IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
js.ExecuteScript("document.getElementById('mobileNum').value = '123456789'");在这种情况下,问题是站点是以角度创建的,只是像这样设置值不能正常工作,并且表单不断提示值为空(与正常工作时使用SendKeys()不同)
那么,快速(如JavaScript)和正确(如SendKeys)填写表单的正确方法应该是什么呢?
发布于 2020-07-13 15:34:25
通常,像Angular.js这样的框架附加事件侦听器是为了做出反应(更新此输入后面的模型),因此更改值属性是不够的,您还需要触发侦听器。每个框架使用不同的事件,对于输入,它可以是input / change。
为此,您可以使用以下命令来触发它:
document.getElementById('mobileNum').value = '123456789';
document.getElementById('mobileNum').dispatchEvent(new Event('input', { bubbles: true }))https://stackoverflow.com/questions/62870541
复制相似问题