当img id是动态的并且src对于多个图像相同时,唯一地定位图像

时间:2014-10-14 06:01:36

标签: selenium xpath selenium-webdriver

我有3个自定义下拉菜单,当点击"向下箭头"最后附加图像,图像代码如下:

<img id="x-auto-2017" class="x-form-trigger x-form-trigger-arrow " 
src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==">

图片ID是动态的,按照2017,2018等的顺序排列。所以我不能使用包含并唯一地识别它们。

我希望逐个点击它们并从下拉列表中选择值。请帮助如何唯一地识别它们。

2 个答案:

答案 0 :(得分:0)

以下代码应该适合您:

List<WebElement> elements = driver.findElements(By.xpath("//img[contains(@class,'x-form-trigger x-form-trigger-arrow']"));
        System.out.println("Number of drop downs on the page: " + elements.size());

        for (WebElement ele : elements) {
            ele.click();
            //Do what ever you want 
        }

答案 1 :(得分:0)

感谢您的回复,我使用了@Marcus建议的位置限定符[N],虽然必须点击并试用一下,但在Chrome控制台上编写手动xpath我得到了以下我的查询的答案。

driver.findElement(By.xpath("(//img[starts-with(@id,'x-auto-2')])[2]")).click();