点击reddit上的下一个按钮,selenium没有做任何事情

时间:2013-12-22 00:34:53

标签: java selenium-webdriver

private void next() {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.reddit.com/r/pics/");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        WebElement element = driver.findElement(By
                .xpath("//span[contains(.,'next')]"));
        element.click();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        System.out.println(driver.getCurrentUrl());

此代码是否正确,单击下一步时发生的所有事情都是焦点向下滚动页面到按钮

3 个答案:

答案 0 :(得分:1)

您的xpath选择器错误。

将其更改为:

WebElement element = driver.findElement(By
    .xpath("//a[contains(text(),'next')]"));

甚至更好(如果其中一个主题链接包含文字" next")使用:

WebElement element = driver.findElement(By
    .xpath("//span[@class='nextprev']/a[contains(text(), 'next')]")); 

这将确保拾取的元素位于页面底部的正确范围内,并使您的测试不那么脆弱。

答案 1 :(得分:1)

代码中使用的xpath = //span[contains(.,'next')],找到内容为view more : next ›的范围,但您只需要点击next ›。即,您需要点击包含{{}的锚标记{1}}。

以下代码将解决问题。

next ›

答案 2 :(得分:0)

在这种情况下,最好避免使用xpath并使用其他定位器,如linkText或partialLinkText。