[英]Selenium XPath “[@value]” Doesn't Match Element With Value
我有一個元素的頁面:
<input id="foo"></input>
其中(通過Javascript)將其value
設置為“bar”。
如果我使用以下XPath語句(使用Python / Selenium):
self.browser.find_elements_by_xpath("//input[@id='foo']")
它返回我的元素,我甚至可以這樣做:
self.browser.find_elements_by_xpath("//input[@id='foo']")[0].get_attribute("value")
然后回到u"bar"
。 但是,如果我嘗試這樣做:
self.browser.find_elements_by_xpath("//input[@value='bar']")
甚至只是:
self.browser.find_elements_by_xpath("//input[@value]")
我的元素沒有返回。
這對我來說唯一有意義的方法是,如果我的Javascript代碼設置了“value” 屬性 ,而不是“value” 屬性 (當我查看Firefox檢查器中的元素時,它沒有顯示“value”屬性,這加強了這一理論)。
所以,我的問題是,如何選擇具有“值”屬性的元素呢?
正如你已經明白的那樣,你並不真正對[@value]感興趣,它是DOM對象的'value' 屬性 。 相反,你試圖在JavaScript對象上找到“foo” 屬性的值。
通常,DOM對象的屬性不會在DOM上公開。 您需要查詢JavaScript本身以查看這些對象及其屬性。 您可以通過JavaScript執行程序執行此操作 。 我沒有使用WebDriver的Python綁定,所以確切的語法/方法可能會有所不同 - 但方法通常是相同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.