使用Selenium 與Web 元素互動時,取得它們的文本內容可以透過不同的方法來實現。其中包括 .text 和 .get_attribute("innerHTML")。雖然它們看起來可以互換,但當其中一種比另一種更合適時,兩者和特定實例之間存在根本差異。
.get_attribute("innerHTML" ) 檢索元素的innerHTML,包括其所有內容和標記。此方法首先嘗試取得具有指定名稱的屬性。如果不存在屬性,則傳回同名的屬性。如果兩者都沒有找到,則傳回 None。
被視為 true 的值(相當於 true 或 false)將呈現為布林值。相反,所有其他非 None 值都會作為字串傳回。對於不存在的屬性或屬性,傳回 None。
參數:
範例:
# Get the innerHTML of an element html = target_element.get_attribute("innerHTML")
.text檢索元素的文字內容,不包括任何標記或
定義:
def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value']
範例:
# Get the text of an element text = target_element.text
屬性與屬性:
.text 存取屬性,而 . get_attribute("innerHTML") 可以擷取屬性或特性。對於標準屬性,.text 提供對其基礎屬性的快速存取。 HTML 中的屬性與屬性載入網頁時,瀏覽器會解釋 HTML 並解釋建立 DOM 物件。 HTML 程式碼中定義的屬性成為這些 DOM 物件的屬性。但是,如果某個屬性不是特定元素的標準屬性,則它不會有對應的屬性。 在這種情況下,可以使用以下方法存取屬性:HTML 中的標準屬性通常與其對應的屬性同步。這意味著當修改屬性時,屬性會自動更新,反之亦然。
在 Python 中,使用點表示法存取屬性(例如,someObj 。名稱)。它可以是實例變量,也可以透過定義為屬性的專門 getter 和 setter 方法來存取。
提取元素內容時在 .text 和 .get_attribute("innerHTML") 之間進行選擇取決於自動化任務的特定要求。如果目標是取得沒有任何標記或樣式的可見文本,.text 是理想的選擇。或者,如果需要 HTML 內容的完整表示(包括所有元素及其格式),.get_attribute("innerHTML") 是合適的選擇。
以上是Selenium `.text` 與 `.get_attribute('innerHTML')`:我什麼時候應該使用它們?的詳細內容。更多資訊請關注PHP中文網其他相關文章!