当前位置: 首页 > 面试题库 >

如果输入类型=“数字”,则seleniumsend_keys不起作用

汪弘盛
2023-03-14
问题内容

我正在使用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)可以很好地工作(但在使用引导程序时却无法正常工作),并且field.clear()一直都在工作field.click()

selenium版本:2.41.0 Firefox版本:29.0


问题答案:

因为您使用的是Firefox29。请降级到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


 类似资料:
  • 我得到错误“Object references an unsaved transient instance-在刷新之前保存transient instance:”,但是当我使用session.persist(instructor)时,两个实体都保存到DB? 保存和持久wrt到CascadeType之间的区别是什么?

  • 更新: 如果我使用注释和路径:/*和/api/*-site可以很好地工作。但是因为我使用全局静态IP,所以我不能为每个IP创建一个以上的入口。如果我使用-site返回错误:

  • 例如,当我输入firstnum=1,5; ii dnum=3,2时,它返回和。但是当我用“.”而不是“”输入数字时,它会返回错误。 有人能给我解释一下吗?在教程中,我看到guy做了同样的程序,即使他使用了带“.”的双数,它也返回了和。

  • 我的代码: 返回排序结果的前20条记录。 但当我移除“限制” 为什么当“限制”超过64K时我会出错? 尼尔在评论中通知我: null 所以不是toArray()问题 这个问题只伴随着sort而来,代码可以很好地处理64K数据。为什么?

  • 本文向大家介绍Chrome输入类型=“数字” CSS样式,包括了Chrome输入类型=“数字” CSS样式的使用技巧和注意事项,需要的朋友参考一下 要设置输入类型=数字的样式,请使用以下CSS- 上面显示了没有微调器的情况。 要显示微调框并设置其样式,请使用 输出结果 上面显示了以下输出-

  • 问题内容: 我有这样的标记: 我希望在用户在第二个输入中意外键入字母时显示跨度。简单吧?作为(可能)相关的问题,当用户移动第一滑块输入时,第二输入中的值消失。为什么?如果我从标记中删除,则不会发生这种情况。 明确说明:我希望用户在键入工具提示时立即看到错误,而无需执行任何“提交”操作。(我不希望实际上根本不需要使用该元素,但是所有相关的演示似乎都需要它。) http://jsfiddle.net/