有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用selenium webdriver和java为datepicker元素创建方法?

示例网站:http://www.phptravels.net/

日期选择器元素: enter image description here

请在下面找到我在航班模块中用于返回日期的代码

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class LaunchWebsite {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "F:\\selenium-java-3.4.0\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.phptravels.net/");
        driver.findElement(By.xpath("//a[@href='#TRAVELPAYOUTS']")).click();
        WebDriverWait wait = new WebDriverWait(driver, 10);
        WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.name("origin_name")));
        driver.findElement(By.name("origin_name")).clear();
        driver.findElement(By.name("origin_name")).sendKeys("Delhi" + Keys.DOWN, Keys.TAB);
        driver.findElement(By.name("destination_name")).clear();
        driver.findElement(By.name("destination_name")).sendKeys("Chandigarh" + Keys.DOWN, Keys.TAB);
        driver.findElement(
                By.xpath("//div[1]/table[@class='mewtwo-datepicker-table mewtwo-datepicker-table--normal-weekdays']"))
                .click();
        driver.findElement(By
                .xpath("//table[@class='mewtwo-datepicker-table mewtwo-datepicker-table--normal-weekdays']/tr[6]/td[@id='mewtwo-datepicker-2017-8-29']"))
                .click();
    }
}

这只选择了8月29日


共 (1) 个答案

  1. # 1 楼答案

    最简单的方法是单击出发日期和返回日期的输入字段,然后以yyyy mm dd格式的字符串形式调用此函数

    public void datePicker(String date){
            driver.findElement(By.xpath(".//*[@id='mewtwo-datepicker-"+date+"']/div")).click();
        }
    

    例如,如果要选择2017年8月31日,请按以下方式调用函数:

    datePicker("2017-8-31");
    

    请注意,在函数中,我只是在xpath后面加上您提供的日期