比較Selenium 中的get_attribute("innerHTML") 和.text
使用Selenium 框架時,您可能會遇到需要的情況檢索元素的文字或innerHTML。雖然這兩種方法可以提供相似的結果,但需要考慮一些根本差異。
get_attribute("innerHTML")
get_attribute("innerHTML") 擷取元素。 InnerHTML 包含元素的內容,包括其子元素。此方法將首先嘗試傳回具有給定名稱的屬性的值。如果該屬性不存在,則傳回同名屬性的值。
# Example my_text = target_element.get_attribute("innerHTML")
.text
.text 擷取某屬性的文字內容元素。此方法會忽略任何 HTML 標籤或子元素,僅傳回可見文字。
# Example my_text = target_element.text
屬性和屬性
了解get_attribute("innerHTML" 之間的區別) 和.text,請務必注意HTML 及其DOM 中的屬性和特性之間的區別表示。
屬性在 HTML 標籤中定義,並提供有關元素的附加信息,例如其 id、類或樣式。另一方面,屬性是動態的,反映元素的當前狀態。
當瀏覽器解析 HTML 時,它會為元素建立 DOM 物件。標準 HTML 屬性會自動轉換為 DOM 屬性。但是,非標準屬性只能透過 getAttribute() 方法存取。
用例
考慮以下場景:
範例
假設您有以下HTML:
<body>
使用在body 元素上使用.text 將傳回:
<body>
在這種情況下,如果您的目標如果要提取完整的HTML結構, get_attribute("innerHTML") 就比較適合。如果您只需要顯示的文本,.text 就足夠了。
以上是Selenium:`get_attribute('innerHTML')` 與 `.text` – 我什麼時候應該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!