能否为指定元素生成通用XPath?需验证禁用后src含red
通用XPath解决方案
当然可以找到适用于这两个元素的通用XPath,以下是几种可行的方案:
方案1:匹配按钮下所有目标img元素
直接定位到目标按钮下的所有img元素,XPath为:
//div[@class='name-slider-header']//button//img
如果该按钮下只有这两个img元素,这个XPath会直接选中它们。后续代码中可以遍历获取到的元素列表,逐个验证src属性是否包含"red",同时确认对应按钮处于disabled状态(注意:如果disabled是按钮的状态而非img的,需要结合按钮的状态筛选)。
方案2:结合disabled状态精准筛选
如果需要直接定位到已禁用按钮下的img元素,可以在XPath中加入按钮的disabled属性条件:
//div[@class='name-slider-header']//button[@disabled]//img
这个XPath会直接返回所有处于禁用状态的目标按钮下的img元素,无需额外判断按钮状态,直接遍历验证src即可。
方案3:限制仅选中前两个img元素
如果目标按钮下还有其他img元素,只想选中前两个,可以用位置索引限制:
//div[@class='name-slider-header']//button//img[position() <= 2]
代码示例(以Selenium Java为例)
// 获取已禁用按钮下的所有目标img List<WebElement> disabledSliderImgs = driver.findElements(By.xpath("//div[@class='name-slider-header']//button[@disabled]//img")); // 遍历验证每个img的src属性 for (WebElement img : disabledSliderImgs) { assert img.getAttribute("src").contains("red") : "图片src未包含'red'"; }
内容的提问来源于stack exchange,提问作者Max Brian
相关产品推荐
相关产品推荐

