如何使用Selenium WebDriver和Java处理日历弹出窗口?

时间:2015-04-22 06:22:02

标签: java selenium automation webdriver

如何使用带有Java的Selenium WebDriver从日历弹出窗口中选择此类性别的日期(即日历24/04/2015)?

我试过这个:

package com.Automation;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class CalendarPopup {

    /**
     * @param args
     */
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.yatra.com/");
        driver.findElement(By.id("//div[2]/ul[3]/li[1]/i")).click();
        driver.findElement(By.id("a_2015_4_25")).click();
    }
}

1 个答案:

答案 0 :(得分:3)

您可以通过从ID中选择一天来点击一天,然后点击它

driver.findElement(By.id('a_2015_4_24')).click(); //use this format a_yyyy_m_d

您还可以通过点击日历箭头返回或前进:

driver.findElement(By.className('js_btnNext')).click() // click the "next" arrow
driver.findElement(By.className('js_btnPrev')).click() // click the "prev" arrow

请注意,您无法点击不可见的过去日期或日期,单击日期时日历也必须可见。

编辑:您在代码中错误地选择了元素,因为您通过id将xpath传递给函数来选择元素,它应该是这样的:

//....
driver.findElement(By.xpath("//div[2]/ul[3]/li[1]/i")).click();
driver.findElement(By.id('a_2015_4_24')).click();
//...