在selenium python webdriver中使用send_keys()发送三个键

14 投票
4 回答
46701 浏览
提问于 2025-04-17 09:54

我想在一个文本框里输入一个浮点数,默认值是0.00。但是它总是把新输入的数字加到原来的数字后面,而不是替换掉。我试过用.clear()方法清空文本框,然后再输入'123.00',结果还是加在后面。接着我试着用send_keys(Keys.CONTROL+'a','123.00'),这次只更新了0.00。

如果有人能帮忙,我会非常感激。

更多信息如下: 网址:http://new.ossmoketest.appspot.com 用户ID:senthil.arumugam@mycompanyname.com -- mycompanyname = orangescape (为了避免垃圾邮件,抱歉这样处理) 现在不需要密码。 在表单中点击购买订单...请填写新产品和新价格...这是一个用于自动化的示例应用程序...谢谢

4 个回答

4

我刚刚发现了clear()这个命令 - 你可以在这里查看:

如果这个元素是一个文本输入框,这个命令会清空里面的内容。对其他类型的元素没有影响。文本输入框包括INPUT和TEXTAREA元素。

编辑:所以你的做法应该是:

   element.clear();
   element.sendKeys('123.00');
7

除非你有自定义的编辑框,否则 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'
20

我用这个方法得到了不错的效果:

from selenium.webdriver.common.keys import Keys

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

如果这个方法不奏效,可能和网页里的代码有关。

撰写回答