我处于一种没有唯一身份证的情况,并且课程中有div
个。 Cssselector和xpath
是如此通用,以至于它们无法被识别。
这就是 Html 的样子:
这是我的代码,它不起作用:
@Test
public void NaviToEpisode(){
driver.findElement(By.linkText("/episode")).click();
title_episode = driver.getTitle();
Assert.assertTrue(title_episode.contains("File uploading"));
}
请帮忙!
答案 0 :(得分:1)
您可以使用cssSelector,在您的情况下它将是:
driver.findElement(By.cssSelector("#links>div>a").click();
如果您使用Firefox,请安装Firebug插件,然后右键单击要检查的元素,然后在菜单中单击"使用Firebug"检查,一旦代码片段突出显示单击它,您应该看到一个复制xpath或css的选项。
答案 1 :(得分:0)
试试这个driver.findElement(By.xpath("//*[contains(@href, '/episode/')]")).click();
答案 2 :(得分:0)
<div id="links" . . >
似乎是静态的,我希望它也是独一无二的。以下css选择器可用于选择第一个链接(即/ episodes /)
#links div:nth-child(1) a
同样,您可以使用css选择器来选择后续元素。例如,选择第二个元素:
#links div:nth-child(2) a
因此,不要使用By.linkText("/episode")
,而是使用By.cssSelector("#links div:nth-child(1) a")
。