如何識別具有多個類別名稱的 Div 元素
與 Web 元素互動時,使用類別名稱定位元素可能至關重要。然而,Selenium 的 @FindBy 註解只允許在 className 參數中使用單一類別名稱。這可能是有限制的,因為元素通常有多個類別名稱。
替代方法
要克服此限制,請考慮以下替代方案:
1。使用 xpath 參數
XPath 允許您使用複雜的表達式來識別元素。對於精確的類別匹配,您可以使用以下語法:
@FindBy(xpath = "//div[@class='value test']") @CacheLookup private WebElement test;
2.在XPath 中使用contains(@class)
如果元素可以具有指定類別名的任意組合,則可以使用contains(@class) 表達式:
@FindBy(xpath = "//div[contains(@class, 'value') and contains(@class, 'test')]") @CacheLookup private WebElement test;
3.利用 CSS 選擇器
CSS 選擇器提供了一種靈活的方法來根據多個類別名稱來定位元素。以下語法可讓您將元素與指定類別名稱的任意組合進行匹配:
@FindBy(css = "div[class*='value test']") @CacheLookup private WebElement test;
理解XPath 類別匹配
需要注意的是,XPath 的類別匹配規則與CSS 選擇器略有不同。如果需要精確匹配,請使用 [@class='value test']。若要符合具有任意順序或類別名稱組合的元素,請使用 [contains(@class, 'value') 和 contains(@class, 'test')].
以上是如何在 Selenium 中尋找具有多個類別名稱的 div 元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!