2012-01-10 1 views
6

Я пытаюсь ввести число с плавающей точкой в ​​текстовое поле со значением по умолчанию 0.00.But, но он пытается подключиться, а не перезаписывать его. Я попытался с .clear(), а затем send_keys ('123.00'), но все равно добавляется. Затем я попытался с send_keys (Keys.CONTROL + 'a', '123.00'). Он обновляет только 0.00.Чтобы отправить три клавиши с помощью send_keys() в selenium python webdriver

Любая помощь действительно оценена.

Для получения дополнительной информации .. URL: http://new.ossmoketest.appspot.com Идентификатор_пользователя: [email protected] - MyCompanyName = orangescape (извините, чтобы избежать нежелательной почты) пароля не нужно сейчас. нажмите PurchaseOrder ... в форме, пожалуйста, новый продукт и новую цену ... пример приложения для автоматизации .. спасибо

+0

Добавить гораздо больше действительного кода в свой вопрос –

+1

atlast я нашел ответ ... send_keys (Keys.CONTROL + 'a' + Keys.NULL, str (newprice)) – senthil3569

ответ

4

У меня были хорошие результаты:

from selenium.webdriver.common.keys import Keys 

element.send_keys(Keys.CONTROL, 'a') 
element.send_keys('123.00') 

Если это не работает это может иметь какое-то отношение к коду на веб-странице.

+0

@Miebster Спасибо! – Smur

3

Я только что нашел команду ясно() - см here:

Если этот элемент является запись элемента текста, это будет ясно значение. Не влияет на другие элементы. Элементами ввода текста являются элементы INPUT и TEXTAREA.

EDIT: Так что ваш подход будет:

element.clear(); 
    element.sendKeys('123.00'); 
+0

send_keys (Keys.CONTROL + 'a' + Keys.NULL, str (newprice)) работает – senthil3569

5

Если у вас есть собственный EditBox, click() должны работать для вас:

from selenium.webdriver import Firefox 

b = Firefox() 
b.get('http://google.com') 
e = b.find_element_by_id('lst-ib') 

e.click() # is optional, but makes sure the focus is on editbox. 
e.send_keys('12.34') 
e.get_attribute('value') 
# outputs: u'12.34' 

e.click() 
e.clear() 
e.get_attribute('value') 
# outputs: u'' 

e.send_keys('56.78') 
e.get_attribute('value') 
# outputs: u'56.78' 
1

Я испытывал проблемы со всеми примерами даны в других ответах.

el.send_keys(Keys.CONTROL + 'a' + Keys.NULL, 'your string') 

Работает во всех проектах, с которыми я работал в, так много я завернул его в мою собственную реализацию класса WebDriver с более надежной работы.

Смежные вопросы