Selenium python时间控件输入问题解决方案

作者:yimu-yimu 时间:2023-09-05 19:35:25 

对于时间的选择问题,查到的大部分为两种情况:

1.存在readonly属性的

Selenium python时间控件输入问题解决方案

2.没有readonly属性的

可直接赋值send_keys()

测试用例中刚好是没有readonly属性的

Selenium python时间控件输入问题解决方案

且定位不到弹窗(通过查资料可知道,直接给时间控件input属性赋值是最快捷的方法)

一开始都是奔着情况二去处理的,但一直运行不成功,总是在赋值的地方出错,反复确认了不存在iFrame,句柄也都是一样的,时间控件为input属性,且是可编辑属性,但就是总报错。

判断是否可编辑的指令为:

flag=timeInput.is_enabled()
print("时间控件是否可编辑: "+str(flag))

运行结果如下:

Selenium python时间控件输入问题解决方案

后来尝试用情况一的方法进行处理,但因为查到的资料里,赋值语句有点问题(可能不适合自己的用例),由于一直没考虑到查到的语句本身有问题,导致最后还是卡死在赋值上面。还好在别的地方看到正确的赋值语句,修改了赋值语句后就正常了

具体分解步骤如下:

步骤一:修改readonly属性

#下面四种方法,任选一种即可

js = "document.getElementById('dateRange_w3').removeAttribute('readonly')" # 1.原生js,移除属性
#js = "$('input[id=dateRange_w3]').removeAttr('readonly')" # 2.jQuery,移除属性
#js = "$('input[id=dateRange_w3]').attr('readonly',false)" # 3.jQuery,设置为false
#js="$(input[id=dateRange_w3]).attr('readonly','')"

步骤二:执行

driver.execute_script(js)

步骤三:清空时间输入框: clear()

步骤四:赋值

jsValue= 'document.getElementById("dateRange_w3").value="2018-11-12 至 2018-11-13"'[/code][code]driver.execute_script(jsValue)

完整流程如下(已测试通过的,为了方便调用,部分有做了封装):

Selenium python时间控件输入问题解决方案

Selenium python时间控件输入问题解决方案

运行结果可看出,时间可正常输入

Selenium python时间控件输入问题解决方案

来源:https://www.cnblogs.com/may18/p/9962386.html

标签:Selenium,python,时间,控件
0
投稿

猜你喜欢

  • python实现微信防撤回神器

    2022-03-14 14:22:04
  • ASP.NET Core Web API 教程Project Configuration

    2024-06-05 09:32:41
  • Python文件操作及内置函数flush原理解析

    2021-07-16 06:43:38
  • python标识符的用法及注意事项

    2023-05-02 03:03:04
  • 支持png透明图片的php生成缩略图类分享

    2023-11-18 07:26:13
  • Python爬虫爬取Bilibili弹幕过程解析

    2021-11-26 02:58:49
  • 简单介绍Ruby中的CGI编程

    2022-09-07 21:38:14
  • Python如何存储数据到json文件

    2023-11-24 14:31:12
  • 使用Python机器学习降低静态日志噪声

    2021-11-09 23:48:57
  • MySQL中给自定义的字段查询结果添加排名的方法

    2024-01-25 08:17:40
  • order by newid() 各种数据库随机查询的方法

    2024-01-19 16:53:14
  • Vue.js设计与实现无限递归学习总结

    2024-04-28 10:53:53
  • python计数排序和基数排序算法实例

    2023-11-01 01:23:26
  • SQL中distinct 和 row_number() over() 的区别及用法

    2024-01-12 20:16:35
  • 使用Python实现二分法查找的示例

    2022-02-08 13:52:53
  • php cli换行示例

    2024-05-03 15:50:59
  • Go操作redis与redigo的示例解析

    2024-04-28 09:12:38
  • MySQL如何修改账号的IP限制条件详解

    2024-01-14 19:41:59
  • Python中operator模块的操作符使用示例总结

    2023-01-31 12:32:14
  • Python+OpenCV实现图像的全景拼接

    2023-12-01 11:47:29
  • asp之家 网络编程 m.aspxhome.com