我是Selenium的新手。 以下是我的代码。
<input type="submit" id="button" value="Edit"/>
我有3个具有相同类型,ID和值的按钮。如何点击每个按钮?任何人都可以帮我解决XPath问题吗?
答案 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] //输入[2] //输入[3]
将网络元素存储到列表中并通过索引访问
列表buttonList = drive.findElements(By.id(“ button”)); buttonList.get(0); 等等...