Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击reddit上的下一步按钮,selenium不做任何事情_Java_Selenium Webdriver - Fatal编程技术网

Java 单击reddit上的下一步按钮,selenium不做任何事情

Java 单击reddit上的下一步按钮,selenium不做任何事情,java,selenium-webdriver,Java,Selenium Webdriver,如果此代码正确,单击“下一步”时发生的所有情况都是焦点向下滚动页面到按钮您的xpath选择器错误 将其更改为: private void next() { WebDriver driver = new FirefoxDriver(); driver.get("http://www.reddit.com/r/pics/"); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS)

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

您的xpath选择器错误

将其更改为:

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());
或者更好(如果其中一个主题链接包含文本“下一步”)使用:


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

代码中使用的
xpath=///span[包含(,,'next')]
使用内容
查看更多:下一个›
,但只需单击
下一个›
,即。,您需要单击包含
next>的锚定标记›

下面的代码将解决此问题

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

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

WebElement element = driver.findElement(By
    .xpath("//span[@class='nextprev']/a[contains(text(), '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
                    .linkText("next ›"));
            element.click();
            System.out.println(driver.getCurrentUrl());