使用 Selenium (Python) 获取输入框的值
Posted
技术标签:
【中文标题】使用 Selenium (Python) 获取输入框的值【英文标题】:Get value of an input box using Selenium (Python) 【发布时间】:2014-10-24 04:35:10 【问题描述】:我正在尝试提取输入框中的文本,
<input type="text" name="inputbox" value="name" class="box">
我开始了
input = driver.find_element_by_name("inputbox")
我尝试了 input.getText() 但我得到了
AttributeError: 'WebElement' object has no attribute 'getText'
【问题讨论】:
请附上示例html。谢谢。 输入是否真的包含文本?或者您想获取/存储输入属性“值”的值“名称”?因为 get_text 通常会给你这种文本:some_text 【参考方案1】:注意 value 属性和 value 属性之间有一个重要的区别。
简单的解释是 value 属性是在 HTML 标记中找到的,而 value 属性是你在页面上看到的。
基本上,value 属性设置元素的初始值,而 value 属性包含当前值。
您可以阅读有关 here 的更多信息,并查看 here 的差异示例。
如果你想要value
属性,那么你应该使用get_attribute:
input.get_attribute('value')
如果你想要value
属性,那么你应该使用get_property
input.get_property("value")
不过,根据文档,get_attribute 实际上返回的是属性而不是属性,除非该属性不存在。 get_property 将始终返回该属性。
【讨论】:
【参考方案2】:使用这个来获取输入元素的值:
input.get_attribute('value')
【讨论】:
为了完整性:input.get_attribute('value').encode('utf-8') 虽然input.text
确实存在,但它不会给你价值:(以上是关于使用 Selenium (Python) 获取输入框的值的主要内容,如果未能解决你的问题,请参考以下文章
Selenium2+python自动化34-获取百度输入联想词
Selenium2+python自动化34-获取百度输入联想词