selenium的两种sendkeys差异

预览:
报错:

'FirefoxWebElement' object has no attribute 'sendkeys'

方法:

actions.move_to_element(time_send).send_keys("2019-01-01").perform()#开始日期

成功截图:
在这里插入图片描述

一、两种需要输入的文本框

此处均以裁判文书网为例

(一)第一种:常态的文本输入框

在这里插入图片描述
元素类型一般均有input,即最后一个元素标签是“input"
例如:以下为该元素文本框的xpath路径,常态的这种文本框,等等输入内容的元素标签均为…框起来的
l
//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input

(二)第二种:特殊的文本输入框

在这里插入图片描述

此处裁判日期处的文本框就是特殊的文本框,可以进行选择,但是一个个选择命令无疑比较麻烦,比较好的的方法就是sendkeys

其元素元素标签就可能不是“input",,此处为input

<input class="laydate-icon ldt dropdown-text" id="cprqStart" type="text" style="width:117px;" lay-key="1">

虽然都是…框起来的,但是后者点击时会加载一个可选的js文件即
在这里插入图片描述

二、问题

第二种文本框使用sendkeys时就会报错

"""审判日期:2019"""
        time_send = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="cprqStart"]')))
        time_send.click()
        time_send.sendkeys("2019-01-01")

此时报错

'FirefoxWebElement' object has no attribute 'sendkeys'

三、解决方法

参见罗 小双 和 熊 虎:《Selenium WebDriver 中鼠标和键盘事件分析及扩展》,链接: 《Selenium WebDriver 中鼠标和键盘事件分析及扩展》.

在这篇文章中发现selenium中的sendkeys竟然存在两类,一类是常用的WebElement.sendKeys,一类是Selenium WebDriver的Actions类中的sendKeys方法,介绍参见大鵬:《【学习笔记】Selenium WebDriver的Actions类中的sendKeys方法和WebElement.sendKeys方法的区别》,链接: 【学习笔记】Selenium WebDriver的Actions类中的sendKeys方法和WebElement.sendKeys方法的区别》.

既然WebElement.sendKeys不行,报错”FirefoxWebElement’ object has no attribute ‘sendkeys’“,那就换一种

"""审判日期:2019"""
        time_send = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="cprqStart"]')))
        time_send.click()
        actions.send_keys_to_element(time_send,"2019-01-01")

actions.send_keys_to_element,这个是actions自动提示的方法,不知道为什么不行,可能自己用错了
于是换成了

 """审判日期:2019"""
        time_send = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="cprqStart"]')))
        time_send.click()
        actions.move_to_element(time_send).send_keys("2019-01-01").perform()#开始日期

在这里插入图片描述

成功完成sendkeys任务

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值