我在webapp左侧有一个链接列表,我自动化了。其中一个主菜单项称为" User Management"。还有第二个链接,我想要的那个具有相同的名称,但是是一个不同主要项目的子项目。
当然,如果我尝试通过链接标题识别它,它将始终找到第一个,主要的不是我想要的。我尝试过xpath和其他一些东西,但我无法弄明白。这是两者的html。
<td id="mainleftlinkzoneover" class="mainleftlinks" width="151" title="User Management"> User Management</td>
<td class="currentsubleftlinks" valign="top" title="User Management"> User Management</td>
请注意,这不是类电流链接下的唯一链接,还有其他三个标题不同。
我希望有一种方法可以说是(链接标题是用户管理)和(td类是currentsubleftlinks)然后选择那个并点击它。
感谢任何帮助!
答案 0 :(得分:0)
您的第一个元素具有ID ,因此您可以使用它来定位元素。 在CssSelector中,它将是“#mainleftlinkzoneover”
要找到第二个,您可以尝试再次使用CssSelector或XPath。
使用Css,您可以尝试找到特定的孩子:".currentsubleftlinks:nth-child(2)"
使用XPath尝试: "//td[@title='User Management']"
答案 1 :(得分:0)
即使它具有唯一值,我也不建议使用标题名称。我认为更有结构性的方法是有利的,例如使用CSS。使用CSS,您可以逐渐缩小您感兴趣的区域,从而避免元素名称可能出现的问题。在这种情况下,你没有提供整个页面,所以我不能给出一个完整的例子,但你提到的元素可以像这样选择:
@FindBy(css = SOME_ENCLOSING_CSS + "$.currentsubleftlinks")
private WebElement elementName;
答案 2 :(得分:0)
首先,使用以下作为cssSelector:
#mainleftlinkzoneover.mainleftlinks[width^='151']
单击第二个,使用下面的cssSelector:
td.currentsubleftlinks[valign^='top']