【问题标题】:Get value of an input box using Selenium (Python)使用 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

标签: python selenium selenium-webdriver


【解决方案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 确实存在,但它不会给你价值:(
    猜你喜欢
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    相关资源
    最近更新 更多