如何用Python获取网页中生成的quantity输入框value值
获取Selenium中输入框的Value属性值
看起来你已经搞定了给amount输入框传值的步骤,接下来要获取quantity输入框的value值其实很简单,核心就是用Selenium的get_attribute()方法来提取输入框的value属性——毕竟输入框的内容是存在这个属性里的,直接用.text是拿不到的哦。
直接获取的代码示例
你已经知道了目标元素的ID是FormRow-BUY-quantity,可以直接用ID定位,代码如下:
# 定位quantity输入框 quantity_input = driver.find_element_by_id("FormRow-BUY-quantity") # 获取value属性值并转为字符串(其实get_attribute返回的就是字符串) quantity_str = quantity_input.get_attribute("value") # 现在quantity_str就是你要的"2.37812"这类字符串,直接拿去做后续计算就行
如果更习惯用XPath定位,也可以写成:
quantity_input = driver.find_element_by_xpath('//input[@id="FormRow-BUY-quantity"]') quantity_str = quantity_input.get_attribute("value")
注意:添加等待避免获取旧值
因为你输入100后,网站需要一点时间计算并更新quantity的值,直接获取可能拿到初始的空值或者旧值。建议加个显式等待,确保元素加载完成且value已更新:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # 等待最多10秒,直到quantity输入框出现且value属性不为空 quantity_input = WebDriverWait(driver, 10).until( lambda d: d.find_element_by_id("FormRow-BUY-quantity").get_attribute("value") != "" ) quantity_str = quantity_input.get_attribute("value")
这样就能保证你拿到的是最新生成的数值啦。
内容的提问来源于stack exchange,提问作者Basem
相关产品推荐
相关产品推荐

