Selenium+java - 日期控件的處理

Selenium+java - 日期控件的處理

前言
通常的日期控件都是input標籤下彈出來的,設置日期使用selenium中的sendKeys 方法就能夠解決。css

可是咱們也會碰到下面的時間日期控件(這個時候這個文本框是不容許咱們輸入時間的)如圖:
Selenium+java - 日期控件的處理html

這個時候,無法調用WebElement的sendKeys(),像這種選擇時間的input標籤都會有一個readonly屬性,這個時候咱們就只能選擇時間,不能手動輸入,那麼這種狀況,咱們該怎麼處理呢?java

經過JS選擇日期
具體代碼示例以下:微信

/**
     * 經過JS選擇日期
     */
    @Test
    public void testByJs() {
        driver.get("https://huoche.cncn.com/train-%B4%F3%C1%AC-%C9%F2%D1%F4");
        driver.manage().window().maximize();
        JavascriptExecutor removeAttribute = (JavascriptExecutor) driver;
        //remove readonly attribute
        removeAttribute.executeScript("var setDate=document.getElementById(\"date\").removeAttribute('readonly');");
        //輸入要輸入日期
        driver.findElement(By.id("date")).clear();
        driver.findElement(By.id("date")).sendKeys("2019-08-31");
        //點擊查詢
        driver.findElement(By.id("searchBtn")).click();
        //獲取輸入後日期顯示
        String value = driver.findElement(By.id("date")).getAttribute("value");
        //驗證日期是否爲選中的8月31日
        Assert.assertEquals(value,"2019-08-31");
    }

經過Iframe選擇日期
具體代碼示例以下:ide

/**
     * 經過Iframe選擇日期
     */
    @Test
    public void testByIframe() {
        driver.get("https://huoche.cncn.com/train-%B4%F3%C1%AC-%C9%F2%D1%F4");
        driver.manage().window().maximize();
        //點擊日曆控件
        driver.findElement(By.id("date")).click();
        //iframe框
        WebElement iframe = driver.findElement(By.cssSelector("[src='about\\:blank']"));
        //進入日曆控件中操做
        driver.switchTo().frame(iframe);
        //選擇31號即月末
        driver.findElement(By.xpath("//tr/td[@onclick='day_Click(2019,8,31);']")).click();
        //跳出日曆控件操做
        driver.switchTo().defaultContent();
        //點擊查詢
        driver.findElement(By.id("searchBtn")).click();
        //獲取輸入後日期顯示
        String value = driver.findElement(By.id("date")).getAttribute("value");
        //驗證日期是否爲選中的8月31日
        Assert.assertEquals(value,"2019-08-31");

    }

以上兩種方法,均可實現選擇日期操做,僅供參考,若是以爲好,能夠關注我哦測試

EOFcode

本文做者:久曲建的測試窩
本文連接:https://www.cnblogs.com/longronglang/p/11327327.html
關於博主:評論和私信會在第一時間回覆。或者直接私信我。
版權聲明:本博客全部文章除特別聲明外,均採用 BY-NC-SA 許可協議。轉載請註明出處!
聲援博主:若是您以爲文章對您有幫助,能夠點擊文章右下角【推薦】一下。您的鼓勵是博主的最大動力!
優秀不夠,你是否無可替代htm

軟件測試交流QQ羣:721256703,期待你的加入!!blog

歡迎關注個人微信公衆號:軟件測試君
Selenium+java - 日期控件的處理ip

相關文章
相關標籤/搜索