Nag*_*i45 8 python firefox selenium selenium-webdriver
我正在用硒写测试.在那些测试中,我需要在表单中的字段中输入数字.
这是html:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form>
<input type="number" id="field_id">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和代码:
browser = webdriver.Firefox()
browser.get('file:///home/my_username/test.html')
field = browser.find_element_by_id('field_id')
field.send_keys('12') # NOTHING HAPPEN!
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果我将字段的类型更改为"文本",例如根本没有问题.另外,field.send_keys(Keys.UP)工作得很好(但是当我使用bootstrap时不起作用)并且一直field.clear()工作,以及field.click().
Selenium版本:2.41.0 Firefox版本:29.0
因为您使用的是Firefox 29.请降级到Firefox 28,这是Selenium 2.41.0支持的,请参阅CHANGES文件.否则,您需要等待新的Selenium更新.
以下是我使用Firefox 28测试过的内容:
from selenium import webdriver
DEMO_PAGE = '''
data:text/html,
<form><input type="number" id="field_id"></form>
'''
browser = webdriver.Firefox()
browser.get(DEMO_PAGE)
input_number = browser.find_element_by_id('field_id')
input_number.send_keys('12')
input_number_value = input_number.get_attribute('value')
print "input_number_value = " + input_number_value
Run Code Online (Sandbox Code Playgroud)
另请参阅:Selenium找不到类型编号的字段
我在使用Fedora(它不提供像Firefox这样的旧版本的软件包)所以"降级Firefox"有点无法回答.
幸运的是,对一个非常相似的问题的答案暗示了一个更好的解决方案 - 设置"dom.forms.number"Firefox偏好以禁用特殊处理input type="number".在Python中:
profile = webdriver.FirefoxProfile()
profile.set_preference("dom.forms.number", False)
browsers = webdriver.Firefox(profile)
Run Code Online (Sandbox Code Playgroud)
使用Firefox 29和Selenium 2.41.0
| 归档时间: |
|
| 查看次数: |
17174 次 |
| 最近记录: |