我是 Selenium 的新手。下面是我的代码。
<input type="submit" id="button" value="Edit"/>
我有 3 个具有相同类型、id 和值的按钮。如何单击每个按钮?任何人都可以帮助我处理 XPath 吗?
我是 Selenium 的新手。下面是我的代码。
<input type="submit" id="button" value="Edit"/>
我有 3 个具有相同类型、id 和值的按钮。如何单击每个按钮?任何人都可以帮助我处理 XPath 吗?
我通过以下方式解决了此类问题:
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();
取决于您需要单击的按钮。希望这对你有用。
use index based xpath like //input[1] and //input[2] and so on.
还有一种更简单的方法,我们可以找出唯一的 xpath,或者我们可以生成
像 xpath=(//input[@id=' ndncchk '])[0] , xpath=(//input[@id='ndnnchk'])[1], xpath=(//input[@id= 'ndncchk'])[2]
或者我们可以找出绝对xpath的方式是:
到 firebug > open firebug > go to firepath > 会有一个小的下拉列表选择 Genarate absolute 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]...
识别独立元素 首先,发布您可以识别依赖元素的帖子。
例如,您在印度、美国、澳大利亚等国家/地区旁边有按钮。如果您想单击 USA 旁边的按钮,那么最好编写 xpath 来识别 USA 并在 html 树中后退一步并确定对每个人都 100% 有效的按钮。
试试//input[@id='button' and @value='Edit'][1]
。一般来说,我喜欢查看父节点是什么,并且可能指定父节点,以便它们变得独一无二。
为了解决这个问题,有不同的方法
使用 index[], //input[1] //input[2] //input[3]
将 webelements 存储到列表中并使用索引访问
列出 buttonList=drive.findElements(By.id("button")); 按钮列表.get(0); 等等...
当我尝试从 chrome 控制台定位多个组合框时,这个对我有用。
$x("//select[@class='form-control']")[1]
它给我返回了正确的组合框,下面有所有选项。