如何识别具有多个类名的 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中文网其他相关文章!