簡體   English   中英

Selenium XPath“[@value]”不匹配元素與值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM