2016-12-22 51 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);