【问题标题】:Selenium with Java send keys with keys.TABSelenium 与 Java 使用 keys.TAB 发送密钥
【发布时间】:2017-05-07 18:47:05
【问题描述】:

您好,我正在使用 Java 处理 selenium。我有一个可编辑的表格,我需要在其中连续输入近 12-17 个值。我正在尝试的是:

Prdcode.sendkeys(keys.TAB,"1000",keys.TAB,keys.TAB,"2000",....etc);

现在的问题是它没有输入所有值;如果我发送 1000,它只输入 10 并触发选项卡。

我什至尝试过"\t",但问题是它会附加所有值而不是“清除并输入”。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 为什么发Keys.TAB?是在表单中从 textField 跳转到 textField 吗?你的意思是它只输入值的一部分(例如"10"而不是"1000"),还是只输入(12)个传递值中的10个值?最后,Prdcode 是什么? WebElement?或者是其他东西?请发布更多代码,以便我们知道发生了什么。
  • Ya.procode 是一个 web 元素(单元格)。iam 触发选项卡从一个单元格跳转到表中的下一个单元格。如果你看到我的代码..iam 触发 TAB 跳转到下一个单元格并输入1000 在那。但它正在输入 10(10 而不是 1000)并触发 TAB ......
  • sendKeys 仅适用于 Prdcode 网页元素。为了跳转到另一个单元格输入数据,你必须在使用 sendkeys 之前给 selenium 那个 webelement。
  • 尝试在两者之间给予“等待”
  • 但是如何自定义发送键在两者之间有“等待”

标签: java selenium key send


【解决方案1】:

首先它不是sendkeys()。请使用sendKeys()

解决方案:

使用多个sendkeys(),如下所示。

Prdcode.sendKeys(keys.TAB);
Prdcode.sendKeys("1000");
Prdcode.sendKeys(keys.TAB);
Prdcode.sendKeys("2000");
Prdcode.sendKeys(.......);

可能的问题及解决方案:

  1. Prdcode 只是一个元素,脚本正在覆盖现有数据。在这里,您可以根据给定的 HTML 更改下一个元素Refer this示例:

    ele1.sendKeys("1000");
    ele2.sendKeys("2000");
    ele3.sendKeys(.......);
    

    注意:无需使用Prdcode.sendKeys(keys.TAB);

  2. Prdcode 有一些数据输入限制。(请手动检查)。如果是,则 脚本不能添加超过限制的字符串(有效场景)。

  3. 如果场景1是随机输入数据,则在sendKeys()之间使用Thread.sleep(1000);

参见:

ele1.sendKeys("1000");
Thread.sleep(1000);
ele2.sendKeys("2000");
Thread.sleep(1000);
ele3.sendKeys(.......);
Thread.sleep(1000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2020-07-30
    • 2013-09-30
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多