前言
通常的日期控件都是input標籤下彈出來的,設置日期使用selenium中的sendKeys 方法就能夠解決。css
可是咱們也會碰到下面的時間日期控件(這個時候這個文本框是不容許咱們輸入時間的)如圖: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
歡迎關注個人微信公衆號:軟件測試君ip