在Selenium WebDriver (Python) 中定位具有特定文本的元素
在Selenium WebDriver 中根據文本內容識別元素可能是一項具有挑戰性的任務。以下是尋找包含特定文字的元素的步驟:
使用contains(text(), "text") XPath
最直接的方法是使用XPath 表達式中的contains() 函數。此函數可讓您尋找文字內容與指定字串部分相符的元素。但是,預設行為區分大小寫。
要解決不區分大小寫的問題,請將//* 前綴添加到XPath 表達式:
<code class="python">driver.find_elements_by_xpath("//*[contains(text(), 'My Button')]")</code>
此表達式將查找包含在其文字內容中的任意位置新增文字“My Button”(不區分大小寫)。
迭代並檢查 Element.text
另一個選項是迭代上的所有元素頁面並檢查 element.text 屬性。然而,這種方法的計算成本很高,而且可能很慢,尤其是對於大型網頁。
辨識巢狀元素
為了避免選擇文字內容重疊的巢狀元素,您可以需要確定一個元素是否是包含相同文字的另一個元素的子元素。這可以透過使用is_displayed() 和find_element_by_xpath() 方法來實現:
<code class="python">outer_element = driver.find_element_by_css_selector("div.outer") if outer_element.is_displayed(): inner_element = outer_element.find_element_by_xpath("./div[text()='My Button']")</code>
此程式碼檢查外部元素是否可見,然後使用XPath 表達式透過以下方式找到其正下方的內部元素:具體文字。
以上是如何使用 Selenium WebDriver (Python) 定位具有特定文字的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!