如何在下面的代码中单击特定的href

时间:2015-10-26 23:14:33

标签: java selenium selenium-webdriver

我处于一种没有唯一身份证的情况,并且课程中有div个。 Cssselector和xpath是如此通用,以至于它们无法被识别。

这就是 Html 的样子:

enter image description here

这是我的代码,它不起作用:

@Test
    public void NaviToEpisode(){

    driver.findElement(By.linkText("/episode")).click();
    title_episode = driver.getTitle();
    Assert.assertTrue(title_episode.contains("File uploading"));

}

请帮忙!

3 个答案:

答案 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")