2013-10-02 3 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

Согласен с Субира Кумар Сао и Faiz.

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

Что означает u, потому что «текст автоматически удаляется из текстового поля после ввода»? –

+0

текст не отображается в текстовом поле, используя указанный выше код. (текст входит в текстовое поле и удаляется с интервалом от 3 до 5 секунд.) –

8

У меня был случай, когда я вводил текст в поле, после которого текст будет удален автоматически. Оказалось, что это связано с некоторыми функциональными возможностями сайта, где вам нужно было нажать клавишу ввода после ввода текста в поле. Итак, после отправки вашего текста штрих-кода с помощью метода sendKeys отправьте «enter» непосредственно после него. Обратите внимание, что вам придется импортировать класс ключей селена. См. Мой код ниже.

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 на предмет правильного условия.
Две вещей, которые вы можете выполнить/с вашими требованиями:

  1. либо проверьте действительный строковый ввод в текстовом поле.
  2. или установите петлю в это текстовое поле, чтобы ввести значение, пока вы не опубликуете форму/запрос.
String barcode="0000000047166"; 

WebElement strLocator = driver.findElement(By.xpath("//*[@id='div-barcode']")); 
strLocator.sendKeys(barcode); 
Смежные вопросы