python - 如果输入类型 ="number",Selenium send_keys 不起作用

标签 python firefox selenium selenium-webdriver

我正在使用 selenium 编写测试。在这些测试中,我需要在表单的字段中输入一个数字。

这是 html:

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<form>
    <input type="number" id="field_id">
</form>


</body>
</html>

还有代码:

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!

顺便说一句,例如,如果我将字段类型更改为“文本”,则完全没有问题。此外,field.send_keys(Keys.UP) 运行良好(但在我使用 Bootstrap 时不起作用)并且 field.clear() 一直运行,以及 field.click()

Selenium 版本:2.41.0 火狐版本: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

另请参阅:Selenium can't find fields with type number

关于python - 如果输入类型 ="number",Selenium send_keys 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412912/

相关文章:

java - 设置方法 : Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows:

Python从名称字符串的末尾删除中间首字母

python - HTML 火狐书签

javascript - python 是否具有与 javascript 等效的函数注释?

python - click() 适用于 Chrome 但不适用于 Firefox?

Python + Selenium 有效获取列表中元素的属性

django - 使用 Lettuce + Splinter 和 Selenium 进行测试时,在 Travis CI 上构建超时

selenium - 如何移动到浏览器窗口中不可见的geb页面内容?

python - Pandas 中的随机数据 block

python - Python 中的优化技术