【发布时间】:2018-02-25 12:29:23
【问题描述】:
我在使用 selenium 发送 ENTER 键时遇到问题。我尝试了多种方法,但似乎没有一种方法有效。
元素代码:
<span _ngcontent -c10>elementName</span>
选择元素后,元素变为
<input _ngcontent -c10 class="title-input" type="text">
-我已经确定我有正确的元素。
-每当有“RETURN”时,我也尝试使用“ENTER”。
我尝试过的事情:
--1--
textBox.click();
textBox.sendKeys(Keys.RETURN);
--2--
Actions actions = new Actions(driver);
actions.click(textBox);
actions.sendKeys(textBox, Keys.RETURN);
--3--
driver.getKeyBoard().pressKey(Keys.RETURN);
Thread.sleep(100);
driver.getKeyBoard().releaseKey(Keys.RETURN);
--4--
Robot r = new Robot();
textBox.click();
r.keyPress(KeyEvent.VK_ENTER);
Thread.sleep(100);
r.keyRelease(KeyEvent.VK_ENTER);
感谢任何帮助!谢谢!
按照 DebanjanB 的要求提供更多的 outerHTML:
<div _ngcontent-c6 class="tab clicked" style="width: 50%;">
<tab-header _ngcontent-c6 _nghost-c10>
<span _ngcontent-c10 class="tab-header-name">
<!---->
<input _ngcontent-c10 class="title-input" type="text"> == $0
<!---->
</span>
<!---->
<span _ngcontent -c10 id="delete-tab" class="can-delete">x</span>
<!---->
<!---->
<img _ngcontent-c10 id="not-pin-tab" src="assets/images/notPin.png">
<tab-header>
</div>
【问题讨论】:
-
一旦元素更改为
<input _ngcontent -c10 class="title-input" type="text">,为什么当它是type="text"时你只想发送Keys.RETURN? -
保存我的输入,因为我改变了它
-
哪个输入?您是否删除了中间的一些步骤?我认为
_ngcontent和-c10会注意保存您的输入。你只需要focusout -
恐怕它没有..还有其他想法吗?目前保存它的唯一方法是单击 Enter。由于我只开发自动化功能,因此我发布了使用 F12 发现的内容
-
你能用更多的 outerHTML 更新问题来确认元素是否在表单中吗?
标签: java angularjs selenium selenium-webdriver selenium-chromedriver