我有一个现成的代码,我正在尝试使用selenium为它编写测试。该代码包含两个或两个以上的复选框,格式如下:
1. <input type="checkbox" id="8933059checkitem0">
2. <input type="checkbox" id="8933059checkitem1">
....
我正在使用以下xpath表达式来获取最顶层的复选框:
"/html//div[@class='xyz']//input[@type='checkbox']"
即使在上面的xpath表达式之后放置'[1]'也没有结果。我正在寻找一个xpath表达式,我只能抓住第一个复选框。
提前致谢
答案 0 :(得分:0)
在选择第一项之前尝试将表达式括起来:
(/html//div[@class='xyz']//input[@type='checkbox'])[1]
或
(//input[@type='checkbox'])[position()=1 and ancestor::div[@class='xyz']]
如果单独使用[1]
,在大多数情况下,它会抓住所有第一个孩子,而不是第一个孩子(如预期的那样)。
实际上,位置谓词经常被误解。他们不会选择与父母相关的项目,而是选择正在处理的序列中的项目。