具有相同类型和ID的多个按钮

时间:2012-10-30 06:24:34

标签: selenium selenium-rc selenium-webdriver xpath

我是Selenium的新手。 以下是我的代码。

<input type="submit" id="button" value="Edit"/>

我有3个具有相同类型,ID和值的按钮。如何点击每个按钮?任何人都可以帮我解决XPath问题吗?

7 个答案:

答案 0 :(得分:5)

使用基于索引的xpath,如 // input [1] // input [2] 等等。

答案 1 :(得分:5)

我通过以下方式解决了这个问题:

String cssSelectorOfSameElements="input[type='submit'][id='button']";

 List<WebElement> a=driver.findElements(By.cssSelector(cssSelectorOfSameElements)) ;
 a.get(0).click();
//a.get(1).click();
//a.get(2).click();

取决于您需要点击的按钮。 希望这对你有用。

答案 2 :(得分:2)

还有一种最简单的方法,我们可以找出唯一的xpath ,或者我们可以生成

索引,例如xpath =(//输入[@id =&#39; ndncchk&#39;])[0], 的xpath =(//输入[@id =&#39; ndncchk&#39;])[1], 的xpath =(//输入[@id =&#39; ndncchk&#39;])[2]

或者我们可以找到绝对xpath 的方式:

得到了萤火虫&gt;打开firebug&gt;转到firepath&gt;会有一个小的下拉列表选择Genarate绝对xpath:

它看起来像:

html/body/div[1]/form[1]/div[2]/div/div[2]/div[2]/div/div[3]/div[17]/div[2]/input[1]
html/body/div[1]/form[1]/div[2]/div/div[2]/div[2]/div/div[3]/div[17]/div[2]/input[2]...

答案 3 :(得分:2)

标识独立元素首先,您可以在其后标识依赖元素。

例如,您在印度,美国,澳大利亚等国家旁边具有按钮。如果要单击USA旁边的按钮,则最好编写xpath来识别美国,并在html树中向后退一步,然后确定对每个人都适用的按钮100%。

答案 4 :(得分:0)

试试//input[@id='button' and @value='Edit'][1]。一般来说,我喜欢看看父节点是什么,也可以指定父节点,使它们变得独一无二。

答案 5 :(得分:0)

当我尝试从chrome控制台找到多个组合框时,这个对我有用。

$x("//select[@class='form-control']")[1]

它返回了正确的组合框,其中包含下面的所有选项。

答案 6 :(得分:0)

要解决此问题,有多种方法

  1. 使用索引[],//输入[1] //输入[2] //输入[3]

  2. 将网络元素存储到列表中并通过索引访问

列表buttonList = drive.findElements(By.id(“ button”)); buttonList.get(0); 等等...

  1. 此外,在某些情况下,如果我们仅需要访问特定元素,则可以使用 “同级”或“同级”标记