博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium webdriver操作日历控件
阅读量:4429 次
发布时间:2019-06-07

本文共 1099 字,大约阅读时间需要 3 分钟。

一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期,
1. 定位到该input
2. 使用sendKeys 方法
比如:
使用定位:
driver.findElement(By.xpath(".//input[@ng-change='onClickStartTime()']")).sendKeys("2016-07-04");
但是,有的日期控件是readonly的
比如:
这个时候,没法调用WebElement的sendKeys()
方案一:使用JS remove readonly attribute,然后sendKeys
  1.  
    //选择建立时间--清除日期控件是readonly属性
  2.  
    JavascriptExecutor removeAttribute = (JavascriptExecutor)driver;
  3.  
    //remove readonly attribute
  4.  
    removeAttribute.executeScript(
    "var setDate=document.getElementsByName(\"establish_time\")[0];setDate.removeAttribute('readonly');") ;
  5.  
    stationManagePage.I_establishTime().sendKeys(I_establishTime);

 

方案二:采用click直接选择日期,日期控件是一个iframe,首先switch iframe,之后找到想要设置的日期button click,然后switch出来:(这个方案没试过,以后用到了来完善代码)

  1.  
    WebElement dayElement=driver.findElement(By.xpath(
    "//span[@id='from_imageClick']"));
  2.  
    dayElement.click();
  3.  
    // WebElement frameElement=driver.findElement(By.xpath("//iframe[@border='0']"));
  4.  
    driver.switchTo().frame(
    1);
  5.  
    driver.findElement(By.xpath(
    "//tr/td[@οnclick='day_Click(2015,2,21);']")).click();
  6.  
    driver.switchTo().defaultContent();

转载于:https://www.cnblogs.com/dong-dong-dong/p/9547056.html

你可能感兴趣的文章
jqGrid的subGrid子表格
查看>>
插件库
查看>>
桶排序
查看>>
the least common multiplier
查看>>
Metro 风格的浏览和无插件的 HTML5
查看>>
LifecycleControl.cs
查看>>
函数式思维: 利用 Either 和 Option 进行函数式错误处理 类型安全的函数式异常...
查看>>
ICEfaces 3.2.0.BETA1 发布
查看>>
Wine 1.5.15 发布
查看>>
Grsync 1.2.2 发布,图形界面的 rsync
查看>>
Chrome 开始允许用户自己监控扩展的活动
查看>>
MySQL for Excel —— 用Excel方式操作MySQL
查看>>
在 Cloud 9 中搭建和运行 Go
查看>>
求字符串中第一个只出现一次的字符
查看>>
ASP.NET常见模块:在线文件管理模块的设计与开发
查看>>
Swift学习第二天
查看>>
div 旋转
查看>>
【设计模式】4、原型模式
查看>>
进入meta模式关闭背光灯
查看>>
pycharm+PyQt5+python最新开发环境配置
查看>>