我正在使用 IE 11 以及 Selenium 和 Java 来自动化流程,在此网页上,我需要在文本框中输入一个值,然后按 Enter。我可以使用下面的代码放置值 -
// Here Box is a webElement
JavascriptExecutor js = (JavascriptExecutor)iedriver;
js.executeScript("arguments[0].value='1500';",box);
它按预期工作,但是当我尝试使用 box.sendKeys(Keys.Enter)
时它不起作用。那么我怎样才能实现“通过 JavaScript 按 Enter 键”。
我也尝试过下面的代码,但这也不起作用。
Actions actions = new Actions(iedriver);
actions.moveToElement(box).sendKeys(Keys.RETURN).build().perform();
没有错误消息,代码执行,但在网页上未按下 Enter 键。
最佳答案
如果你想通过 JavaScript 来完成,你可以考虑使用 KeyboardEvent.initKeyBoardEvent()功能如下:
document.body.dispatchEvent(document.createEvent('KeyboardEvent').initKeyEvent(
'keydown', true, true, window, false, false, false, false, 13, 0));
但是我不建议您朝这个方向寻找,您可以尝试调用 submit() WebElement 上的函数就像这样简单:
box.submit();
另外,考虑重构您的测试套件以利用 Page Object Model Design Pattern它允许您抽象 DOM来自测试逻辑的元素表示。
关于javascript - 如何使用 "Enter Key"通过 Selenium 中的 JavaScript 发送 "executeScript",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054003/