在selenium python webdriver中使用send_keys()发送三个键
我想在一个文本框里输入一个浮点数,默认值是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')
如果这个方法不奏效,可能和网页里的代码有关。