2016-12-22 32 views
0

您好我正在使用Java使用硒。我有一个可编辑的表格,我需要连续输入近12-17个值。我试图为:Selenium与Java发送密钥key.TAB

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

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

我甚至试过"\t"但问题是它会追加所有的值而不是'清除并输入'。有人能帮助我吗?

+0

,为什么要找'Keys.TAB'?它是否从textField跳转到表单中的textField?你的意思是它只是输入一部分值(例如'“10”'而不是'“1000”'),或者只有(10)中的10个值通过了值?最后,什么是“Prdcode”?一个WebElement?或者是其他东西?请张贴更多的代码,以便我们知道发生了什么。 – n247s

+0

Ya.procode是一个web元素(单元格).iam触发标签从一个单元格跳转到table.if中的一个单元格到下一个单元格。如果您看到我的代码..iam触发TAB跳转到下一个单元格,并输入1000.但它进入10(10而不是1000)并触发TAB ....... –

+0

sendKeys只能在Prdcode webelement上运行。为了跳转到另一个单元格输入数据,您必须在使用sendkeys之前向see提供webelement。 – Grasshopper

回答

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随机输入数据,然后使用Thread.sleep(1000);sendKeys()之间。

参见:

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