2016-09-23 41 views
0

我想在selenium webdriver中獲取用戶輸入的值,但是,webdriver正在從「value」屬性返回文本。這是Selenium中的一個錯誤嗎?我怎樣才能得到用戶實際輸入的內容?如果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

嘗試執行JavaScript代碼:

driver.execute_script("document.getElementById('id_value').value") 
0

這是硒的錯誤嗎?

不,這不是錯誤,行爲是絕對正確的。

實際上,您將從已找到的元素中獲取屬性值,而不是刷新元素,其中屬性值已經與緩存中的舊值一起存儲。這就是爲什麼你會獲得先前的價值。

你應該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)  
相關問題