Eclipse에서 셀레늄 경로를 사용하여 달력 팝업에서 날짜를 선택하는 방법

프리 얀카 스리 바스타 바

달력 팝업에서 출발 날짜와 반환 날짜를 선택하려고하는데 날짜 선택을위한 일반 코드를 작성하기가 어려웠습니다. 메인 메서드에서 인수로 날짜를 전달하고 메서드가 실행되는 메서드를 작성하려고합니다. 달력 팝업을 클릭하고 날짜를 클릭하십시오. 나는 달을 찾을 때까지 코드를 작성했지만 그 후에는 날짜 경로가 멈췄습니다.

팝업 스크린 샷 :

여기에 이미지 설명 입력

내가 사용하고있는 웹 사이트는 여기를 클릭하십시오 https://www.yatra.com/

Here is my code:



 package Website;

    import java.util.Date;
    import java.util.List;
    import java.util.concurrent.TimeUnit;

    import org.openqa.selenium.By;
    import org.openqa.selenium.Keys;
    import org.openqa.selenium.NoSuchElementException;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.interactions.Actions;

    public class PickDateCalender {
        static WebDriver driver=new FirefoxDriver();;


        public static void main(String[] args) throws InterruptedException {



            driver.get("https://www.yatra.com/");

            driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
            WebElement element=driver.findElement(By.className("dropdown-toggle"));

            String ori="New Delhi, India (DEL)";
            String dest="Bangalore, India (BLR)";

            String DepartDte="23-October-2016";
            String splitter[]=DepartDte.split("-");
            String Departdate=splitter[0];
            System.out.println("date"+" "+Departdate);
            String Departmonth=splitter[1];
            System.out.println("month"+" "+Departmonth);
            String Departyear=splitter[2];
            System.out.println("year"+" "+Departyear);
            String returDte="";
            ;
            selectDate(Departdate,Departmonth,Departyear);

        }



public static void selectDate(String Depardate,String Departmonth,String Departyear ){
        WebElement Depart=driver.findElement(By.id("BE_flight_depart_date"));
        Depart.click();
        List <WebElement> month =driver.findElements(By.xpath(".//*[@id='PegasusCal-0']//ul[@class='month-list']"));
        for(int i=0;i<month.size();i++){
            String monname=month.get(i).getText();


            if(monname.contains(Departmonth)){
                System.out.println("Match found"+" "+monname);
                System.out.println("inside if");
                month.get(i).click();

                break;


                }
                driver.close();

            }
        }
    }
마단

단일 xpath로 쉽게 수행 할 수 있습니다. 날짜마다 고유 한 ID가 있으므로

'a_year_month_day'인 a_2017_3_13

xpath를 직접 빌드하고 수행 할 수 있습니다.

 private void selectDate(String Departdate, String Departmonth, String Departyear) {
        //div[@id='PegasusCal-0']//a[@id='a_2017_3_13']
        String dateXpath = String.format(
                "//div[@id='PegasusCal-0']//a[@id='a_%s_%d_%s']",
                Departyear, getMonthNum(Departmonth), Departdate);
        driver.findElement(By.xpath(dateXpath)).click();
    }

     //As you are passing input in name 'October' parsing that to number
    private int getMonthNum(String monthName) {
        try {
            Date date = new SimpleDateFormat("MMM").parse(monthName);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            return cal.get(Calendar.MONTH) + 1;
        } catch (ParseException ex) {
            Logger.getLogger(Yatra.class.getName()).log(Level.SEVERE, null, ex);
        }
        return 1;
    }

전체 샘플

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 *
 * @author Phystem
 */
public class Yatra {

    WebDriver driver;

    public Yatra() {
        System.setProperty("webdriver.chrome.driver", "D:\\Test\\chromedriver.exe");
        driver = new ChromeDriver();
    }

    public void start() {
        driver.get("https://www.yatra.com/");
        String DepartDte = "29-March-2017";
        String splitter[] = DepartDte.split("-");
        String Departdate = splitter[0];
        System.out.println("date" + " " + Departdate);
        String Departmonth = splitter[1];
        System.out.println("month" + " " + Departmonth);
        String Departyear = splitter[2];
        System.out.println("year" + " " + Departyear);
        String returDte = "";
        driver.findElement(By.name("flight_depart_date")).click();
        selectDate(Departdate, Departmonth, Departyear);
    }

    private void selectDate(String Departdate, String Departmonth, String Departyear) {
        //div[@id='PegasusCal-0']//a[@id='a_2017_3_13']
        String dateXpath = String.format(
                "//div[@id='PegasusCal-0']//a[@id='a_%s_%d_%s']",
                Departyear, getMonthNum(Departmonth), Departdate);
        driver.findElement(By.xpath(dateXpath)).click();
    }

    private int getMonthNum(String monthName) {
        try {
            Date date = new SimpleDateFormat("MMM").parse(monthName);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            return cal.get(Calendar.MONTH) + 1;
        } catch (ParseException ex) {
            Logger.getLogger(Yatra.class.getName()).log(Level.SEVERE, null, ex);
        }
        return 1;
    }

    public static void main(String[] args) {
        new Yatra().start();
    }

}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

셀레늄-자바의 자바 스크립트 팝업 달력에서 날짜를 선택하는 방법

분류에서Dev

셀레늄 webdriver를 사용하여 달력에서 날짜를 선택하는 방법

분류에서Dev

C #을 사용하여 Ajax CalendarExender에서 셀레늄 Webdriver에서 날짜를 선택하는 방법

분류에서Dev

셀레늄을 사용하여 Datepicker에서 날짜를 선택하는 방법은 무엇입니까?

분류에서Dev

텍스트 상자의 날짜 값을 사용하여 달력에서 날짜를 선택하는 방법

분류에서Dev

셀레늄 WebDriver는 자바를 사용하여 크롬에서 인증 팝업을 처리하는 방법

분류에서Dev

셀레늄 Webdriver를 사용하여 페이지에서 날짜 선택

분류에서Dev

달력 로봇 프레임 워크에서 미래의 날짜를 선택하는 방법

분류에서Dev

셀레늄 웹 드라이버를 사용하여 조회 필드에서 값을 선택하는 방법

분류에서Dev

셀레늄 웹 드라이버를 사용하여 조회 필드에서 값을 선택하는 방법

분류에서Dev

셀레늄 웹 드라이버를 사용하여 조회 필드에서 값을 선택하는 방법

분류에서Dev

이번 달에서 현재 날짜를 선택하는 방법

분류에서Dev

허용 또는 Java와 셀레늄 WebDriver를 사용하여 파이어 폭스에서 마이크와 카메라 팝업 알림을 거부하는 방법

분류에서Dev

Java를 사용하여 셀레늄에서 브라우저 알림 팝업을 처리하는 방법은 무엇입니까?

분류에서Dev

셀레늄 WebDriver에 Java를 사용하여 명령 줄 인수 (baseURL)를 전달하는 방법

분류에서Dev

senkeys + 셀레늄에 문자를 입력하는 방법

분류에서Dev

선택한 날짜를 얻는 방법? 반응 달력에서

분류에서Dev

셀레늄 웹 드라이버의 다중 선택 상자에서 요소를 선택하는 방법

분류에서Dev

DesiredCapabilities를 추가하여 셀레늄 Grid2에서 사용 가능한 브라우저를 무작위로 선택하는 방법

분류에서Dev

셀레늄 IDE를 사용하여 HTML 보고서를 생성하는 방법

분류에서Dev

셀레늄 Webdriver에서 팝업을 처리하는 방법

분류에서Dev

전체 달력에서 숫자를 사용하여 날짜 레이블을 일로 변경

분류에서Dev

날짜 선택기 및 wpcontrol 달력을 사용하여 달력의 날짜를 설정하는 방법

분류에서Dev

화면 크기 (팝업에서 사용자가 선택)에 따라 입력 크기를 조정하는 방법

분류에서Dev

셀레늄을 사용하여 div 요소에 중첩 된 단락에서 텍스트를 선택하는 방법은 무엇입니까?

분류에서Dev

방법 셀레늄 webdriver를 사용하여 액션 클래스를 사용하여 셀레늄에 T를 눌러 CTRL + 자바 또는 방법을 사용하여 webdriver 셀레늄에서 새 탭을 열려면

분류에서Dev

셀레늄을 사용하여 인라인 CSS에서 배경 이미지를 얻는 방법

분류에서Dev

버튼을 누를 때 날짜 선택기에서 날짜를 전달하는 방법 (ng-bootstrap | Angular 2)

분류에서Dev

팝업 창에서 부모 창으로 JavaScript를 사용하여 라디오 버튼의 선택한 값을 전달하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    셀레늄-자바의 자바 스크립트 팝업 달력에서 날짜를 선택하는 방법

  2. 2

    셀레늄 webdriver를 사용하여 달력에서 날짜를 선택하는 방법

  3. 3

    C #을 사용하여 Ajax CalendarExender에서 셀레늄 Webdriver에서 날짜를 선택하는 방법

  4. 4

    셀레늄을 사용하여 Datepicker에서 날짜를 선택하는 방법은 무엇입니까?

  5. 5

    텍스트 상자의 날짜 값을 사용하여 달력에서 날짜를 선택하는 방법

  6. 6

    셀레늄 WebDriver는 자바를 사용하여 크롬에서 인증 팝업을 처리하는 방법

  7. 7

    셀레늄 Webdriver를 사용하여 페이지에서 날짜 선택

  8. 8

    달력 로봇 프레임 워크에서 미래의 날짜를 선택하는 방법

  9. 9

    셀레늄 웹 드라이버를 사용하여 조회 필드에서 값을 선택하는 방법

  10. 10

    셀레늄 웹 드라이버를 사용하여 조회 필드에서 값을 선택하는 방법

  11. 11

    셀레늄 웹 드라이버를 사용하여 조회 필드에서 값을 선택하는 방법

  12. 12

    이번 달에서 현재 날짜를 선택하는 방법

  13. 13

    허용 또는 Java와 셀레늄 WebDriver를 사용하여 파이어 폭스에서 마이크와 카메라 팝업 알림을 거부하는 방법

  14. 14

    Java를 사용하여 셀레늄에서 브라우저 알림 팝업을 처리하는 방법은 무엇입니까?

  15. 15

    셀레늄 WebDriver에 Java를 사용하여 명령 줄 인수 (baseURL)를 전달하는 방법

  16. 16

    senkeys + 셀레늄에 문자를 입력하는 방법

  17. 17

    선택한 날짜를 얻는 방법? 반응 달력에서

  18. 18

    셀레늄 웹 드라이버의 다중 선택 상자에서 요소를 선택하는 방법

  19. 19

    DesiredCapabilities를 추가하여 셀레늄 Grid2에서 사용 가능한 브라우저를 무작위로 선택하는 방법

  20. 20

    셀레늄 IDE를 사용하여 HTML 보고서를 생성하는 방법

  21. 21

    셀레늄 Webdriver에서 팝업을 처리하는 방법

  22. 22

    전체 달력에서 숫자를 사용하여 날짜 레이블을 일로 변경

  23. 23

    날짜 선택기 및 wpcontrol 달력을 사용하여 달력의 날짜를 설정하는 방법

  24. 24

    화면 크기 (팝업에서 사용자가 선택)에 따라 입력 크기를 조정하는 방법

  25. 25

    셀레늄을 사용하여 div 요소에 중첩 된 단락에서 텍스트를 선택하는 방법은 무엇입니까?

  26. 26

    방법 셀레늄 webdriver를 사용하여 액션 클래스를 사용하여 셀레늄에 T를 눌러 CTRL + 자바 또는 방법을 사용하여 webdriver 셀레늄에서 새 탭을 열려면

  27. 27

    셀레늄을 사용하여 인라인 CSS에서 배경 이미지를 얻는 방법

  28. 28

    버튼을 누를 때 날짜 선택기에서 날짜를 전달하는 방법 (ng-bootstrap | Angular 2)

  29. 29

    팝업 창에서 부모 창으로 JavaScript를 사용하여 라디오 버튼의 선택한 값을 전달하는 방법은 무엇입니까?

뜨겁다태그

보관