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());
此代码是否正确,单击下一步时发生的所有事情都是焦点向下滚动页面到按钮
答案 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。