Selenium Webdriver - 点击横幅

时间:2017-04-10 16:56:36

标签: selenium selenium-webdriver

我试图点击横幅的<>按钮,该按钮在amazon.in几秒钟后继续旋转,但无法执行此操作。

我写了以下代码,但仍未成功

driver.get("amazon.in");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.findElement(By.xpath("//span[contains(text(),'Previous page')]")).click();

它没有点击页面顶部显示的横幅上的<按钮。

3 个答案:

答案 0 :(得分:0)

当我编写可能重用的代码时,我将其放入函数中。这是点击横幅上的下一个和上一个箭头的功能。

public static void clickNextBanner()
{
    driver.findElement(By.cssSelector("a.a-carousel-goto-nextpage")).click();
}

public static void clickPrevBanner()
{
    driver.findElement(By.cssSelector("a.a-carousel-goto-prevpage")).click();
}

答案 1 :(得分:0)

尝试使用显式等待

WebElement previous =driver.findElement(By.xpath("//span[contains(text(),'Previous page')]"));
    WebDriverWait wait = new WebDriverWait(driver,20);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(text(),'Previous page')]"))); 
    previous.click();

答案 2 :(得分:-1)

使用以下代码点击滑块的下一个>和之前的<箭头。

driver.get("http://www.amazon.in/");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
// Forward navigation
for(int i =0;i<3;i++)
{
      driver.findElement(By.xpath("//a[@class='a-carousel-goto-nextpage']")).click();
      Thread.sleep(1000);
  }

// back navigation
for(int j=0;j<3;j++)
{
     driver.findElement(By.xpath("//a[@class='a-carousel-goto-prevpage']")).click();
     Thread.sleep(1000);
}