Java 单击reddit上的下一步按钮,selenium不做任何事情
如果此代码正确,单击“下一步”时发生的所有情况都是焦点向下滚动页面到按钮您的xpath选择器错误 将其更改为: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)
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());