我试图在selenium webdriver中获取用户输入的值,但是,webdriver正在从'值'返回文本。属性改为。这是Selenium的一个错误吗?如何获得用户实际输入的内容?
<input id="budget" name="budget" type="text" size="10" maxlength="10" class="exemplifiable" value="100" data-example="20.00">
测试代码
locator = 'budget'
element = self.find_element_by_id(locator)
element.send_keys('5')
value = element.get_attribute('value')
print(value)
# prints 100 instead of 5
答案 0 :(得分:0)
尝试执行JavaScript代码:
driver.execute_script("document.getElementById('id_value').value")
答案 1 :(得分:0)
这是Selenium中的错误吗?
不,这不是错误,行为绝对正确。
实际上,您正在从已找到的元素获取属性值,而不是刷新的元素,其中属性值已经使用旧值存储在缓存中。这就是为什么你得到以前的价值。
您应该在send_keys()
之后使用新值再次找到相同的元素,然后您将找到所需的实际结果,如下所示: -
locator = 'budget'
element = self.find_element_by_id(locator)
element.send_keys('5')
value = self.find_element_by_id(locator).get_attribute('value')
print(value)