Selenium webdriver 操作日历控件

本文介绍了如何在WebDriver中操作具有readonly属性的日期控件。提供了两种解决方案:一是通过JavaScript移除readonly属性后使用sendKeys方法输入日期;二是通过点击选择日期,特别针对嵌套在iframe中的日期控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章转自:http://www.tuicool.com/articles/q6zYJ3m

一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期,

1. 定位到该input

2. 使用sendKeys 方法

比如:

但是,有的日期控件是readonly的

比如12306的这个

<input id="train_date" class="inp-txt" type="text" value="2015-03-15" name="back_train_date" autocomplete="off" maxlength="10" readonly="readonly" disabled="disabled">

这个时候,没法调用WebElement的sendKeys()

方案一:使用JS remove readonly attribute,然后sendKeys

还是以万恶的12306为例:

使用出发日期,将input标签的readonly熟悉去掉

JavascriptExecutor removeAttribute = (JavascriptExecutor)driver;  
         //remove readonly attribute
         removeAttribute.executeScript("var setDate=document.getElementById(\"train_date\");setDate.removeAttribute('readonly');") ;

方案二:采用click直接选择日期,日期控件是一个iframe,首先switch iframe,之后找到想要设置的日期button click,然后switch出来

WebElement dayElement=driver.findElement(By.xpath("//span[@id='from_imageClick']"));

dayElement.click();

// WebElement frameElement=driver.findElement(By.xpath("//iframe[@border='0']"));

driver.switchTo().frame(1);

driver.findElement(By.xpath("//tr/td[@onclick='day_Click(2015,2,21);']")).click();

driver.switchTo().defaultContent();

转载于:https://www.cnblogs.com/shuiyelifang/p/5629580.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值