在Selenium中访问WebElement的正确方法在java中具有相同的名称或id

时间:2013-07-10 09:47:21

标签: java selenium webdriver

我对上述问题有疑问......但首先,如果本网站内有这个问题的答案我提前错过,我为提出重复的问题而道歉......

我的问题是当我在php中有一个循环创建一个副本,例如一个按钮,它也为我需要访问的元素创建相同的名称和id,是的我只能通过第一个实例访问此元素selenium webdriver中的findbyid方法给出了。

我通过创建一个发送Tab键的多重命令来解决这个问题,我必须首先指定在执行操作之前添加Tab键所执行的迭代次数。

有什么方法可以通过某个索引或特殊位置访问此元素。 最后抱歉我的英语难以理解,请耐心等待...并提前感谢...

2 个答案:

答案 0 :(得分:1)

您可以形成一个webelements列表,然后通过索引访问该列表中的webelement。

List<WebElement> buttons = driver.findElements(By.id("id"));
buttons[0].click();
buttons[1].click();
buttons[n].click();

显然,您需要知道列表中的哪个位置可以访问,但是由于您的标签尝试,我可以看到您已经知道这一点。

答案 1 :(得分:1)

你可以这样做,@ MarkRowlands说,或者如果你知道索引,你可以这样做:

WebElement button = driver.findElement(By.xpath("(//*[@id='id'])[n]")) //n - your index

但我不建议您使用索引。在我的练习中,总是有确切元素的定位器