在Python 中使用Selenium WebDriver 存取文字元素
在使用Selenium WebDriver 的Web 自動化中,從HTML 元素中檢索文字內容至關重要。但是,當元素的 ID 在頁面重新載入時動態變更時,可能會出現問題,如圖所示的情況。
原始程式碼
提供的原始程式碼:
text = driver.find_element_by_class_name("current-stage").getText("my text")
嘗試透過類別名稱「current-stage」定位元素並擷取其文本,定位元素並擷取其文本,該文本預計為“我的文本”。
HTML 結構
提供的HTML 結構顯示了類別名稱為「current-text」和動態ID 的文字元素,如下所示:
<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>
問題
原始程式碼的問題與XPath 無關,而是與getText 方法的誤用有關。將參數傳遞給 getText 嘗試設定元素的文本,而不是檢索它。
正確的方法
從元素中提取文字的正確方法是使用不帶任何參數的getText,如下所示:
text = driver.find_element_by_class_name("current-stage").getText()
此程式碼將檢索元素的文字內容並將其儲存在文字變數中。
驗證結果
您可以使用assertEqual 方法來驗證檢索到的文本,而不是將預期的文本傳遞給getText 方法,如下所示:
expected_text = "my text" actual_text = driver.find_element_by_class_name("current-stage").getText() self.assertEqual(expected_text, actual_text)
此方法可確保擷取的文字符合預期值。
以上是如何從 Selenium WebDriver 中動態變化的 HTML 元素中檢索文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!