2013-10-02 68 views
17

當我在文本字段中輸入文本時,它將被刪除。Selenium Webdriver:將文本輸入到文本字段

下面是代碼:

String barcode="0000000047166"; 

WebElement element_enter = _driver.findElement(By.xpath("//*[@id='div-barcode']")); 

element_enter.findElement(By.xpath("//html/body/div[1]/div[3]/div[1]/form/div/div/input")).sendKeys("barcode"); 
+5

'barcode'是一個變量傳遞它像這樣'的SendKeys(條形碼)' –

+0

使用'的SendKeys(條形碼)'作爲@SubirKumarSao說; 'div-barcode'字段可能具有驗證以刪除無效條形碼。 – Faiz

回答

20

同意蘇比爾·庫馬爾嫂和法伊茲。

element_enter.findElement(By.xpath("//html/body/div[1]/div[3]/div[1]/form/div/div/input")).sendKeys(barcode); 
+0

我正在做的代碼如下: element_enter.findElement(By.xpath(「// html/body/div [1]/div [3]/div [1]/form/div/div/input」) ).sendKeys(條形碼); 但問題在於輸入後文本會自動從文本字段中刪除。 –

+0

你的意思是「文本在輸入後自動從文本字段中刪除」? –

+0

通過使用上述代碼,文本不會顯示在文本字段中。 (文本輸入到文本框中,並在3到5秒內刪除。) –

8

我有一個案例,我在輸入文本到字段後文本將被自動刪除。原來,這是由於一些網站功能,你必須 在輸入字段後按下回車鍵。所以,在用sendKeys方法發送條形碼文本後,直接在它後面發送'enter'。請注意,您將不得不導入selenium Keys類。看到我的代碼如下。

import org.openqa.selenium.Keys; 

String barcode="0000000047166"; 
WebElement element_enter = driver.findElement(By.xpath("//*[@id='div-barcode']")); 
element_enter.findElement(By.xpath("your xpath")).sendKeys(barcode); 

element_enter.sendKeys(Keys.RETURN); // this will result in the return key being pressed upon the text field 

我希望它有助於..

+0

是的,它的確如此。謝謝了很多 –

+0

謝謝,當然沒有其他解決方案的時候,它確實對我有所幫助。 –

4

使用此代碼。

driver.FindElement(By.XPath(".//[@id='header']/div/div[3]/div/form/input[1]")).SendKeys("25025"); 
+0

嘗試將代碼放在代碼標籤中,請... –

1

它可能是對某些有效條件的JavaScript檢查。
兩件事情,您可以執行的A/C你的要求:

  1. 無論您在文本框中輸入有效的字符串輸入。
  2. 或者設置一個針對該文本框的循環來輸入值,直到您發佈表單/請求。
String barcode="0000000047166"; 

WebElement strLocator = driver.findElement(By.xpath("//*[@id='div-barcode']")); 
strLocator.sendKeys(barcode); 
相關問題