一、背景

  web自动化中存在一部分元素属性是readonly属性,导致我们在使用自动化代码的时候无法使用sendkeys()方法传入数据,以12306网站选择出发日期为例,见下图

二、json语句处理

怎么处理可以使出发日期可以自己键盘输出呢,将readonly属性修改为false,接下来通过json语句在控制台实现,就可以输入日期了,

如果要修改为只读,修改readonly属性值为true

 三、利用python处理只读元素变为可键入

driver.execute_script()执行json语句的方法

代码如下:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep driver=webdriver.Chrome()
driver.get('https://www.12306.cn/index/')
driver.maximize_window()
# 输入出发地上海
driver.find_element_by_id('fromStationText').click()
driver.find_element_by_id('fromStationText').send_keys('上海')
driver.find_element_by_id('fromStationText').send_keys(Keys.ENTER)
sleep(1)
# 输入到达地西安
driver.find_element_by_id('toStationText').click()
driver.find_element_by_id('toStationText').send_keys('西安')
driver.find_element_by_id('toStationText').send_keys(Keys.ENTER)
sleep(1)
#准备json语句,并将出发时间设定好
js="var a=document.getElementById('train_date');"\
"a.readOnly=false;"\
" a.value='2021-10-08'"
driver.execute_script(js)
sleep(1)
driver.find_element_by_id('search_one').click()
sleep(2)
driver.close()
driver.quit()

web自动化页面元素不能键盘输入的更多相关文章

  1. 【python+selenium的web自动化】- 元素的常用操作详解(一)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.元素 ...

  2. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  3. web自动化之元素定位篇

    一.web自动化元素定位的方式有8种.------腾讯课堂 1.1 id定位: 1.2 class定位: 1.3 classname定位 1.4 tag_name 1.5

  4. 【python+selenium的web自动化】- 元素的常用操作详解(二)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.鼠标 ...

  5. web自动化:元素定位(二)

    一. 实例 如何定位到下图第二个"抢投标",有一种方法是利用xpath定位 //a[@href="/loan/loan_detail/Id/7190.html" ...

  6. web自动化 模拟鼠标、键盘操作

    一.鼠标操作 1.1鼠标的悬停操作,move_to_element from selenium import webdriver from selenium.webdriver.common.acti ...

  7. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  8. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  9. 【Selenium07篇】python+selenium实现Web自动化:PO模型,PageObject模式!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第七篇博 ...

随机推荐

  1. Mycat调优启用useOffHeapForMerge报java.lang.NumberFormatException异常解决(附源码)

    come from : https://blog.csdn.net/u013716179/article/details/89886452

  2. Linux中级之netfilter防火墙(iptables)

    一.什么是防火墙? 防火墙其实就是一个隔离工具:工作于主机或者网络的边缘 对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测 对于能够被规则所匹配的报文做出相应处理的组件(这个组件可以是硬 ...

  3. 11.2 uptime:显示系统的运行时间及负载

    uptime命令可以输出当前系统时间.系统开机到现在的运行时间.目前有多少用户在线和系统平均负载等信息. [root@cs6 ~]# uptime   17:02:25 up 1:48, 3 user ...

  4. SpringBoot基础学习(一) SpringBoot概念、简单案例实现、单元测试及热部署讲解

    SpringBoot概念 Spring优缺点分析 Spring优点 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品,无需开发重量级的 ...

  5. 使用Jekyll + GitHub Pages免费搭建个人博客

    使用Jekyll + GitHub Pages免费搭建个人博客 My Blog:无名の辈 | VectorX (vectorxxxx.github.io) Download Ruby:Download ...

  6. 【源码解析】阿里在线诊断工具greys源码

    撸起袖子加油干!开门见山! 一.源码下载 下载代码: git clone https://github.com/oldmanpushcart/greys-anatomy.git 二.源码分析 2.1 ...

  7. Tomcat 服务器轻松部署 SSL 证书

    Tomcat 服务器 SSL 证书安装部署 1准备服务器 购买网上各个产家的云服务器 或者在自己的电脑上装虚拟机 二者皆可,建议选择第一种,因为操作起来相对方便 2安装JDK 2.1上传JDK到Lin ...

  8. Linux - fuser 命令

    前言 之前连公司堡垒机的时候发现连不上,找运维排查是建立的链接数太多,很多超时链接没有断掉,导致不能再创建链接 此时,需要手动断开用户终端链接,然后百度搜到 fuser 可以断开用户终端链接 命令作用 ...

  9. 80个Python练手项目列表

    80个Python练手项目列表   我若将死,给孩子留遗言,只留一句话:Repetition is the mother of all learning重复是学习之母.他们将来长大,学知识,技巧.爱情 ...

  10. 激光雷达Lidar Architecture and Lidar Design(上)

    激光雷达Lidar Architecture and Lidar Design(上) 介绍 激光雷达结构: 基本条件 构型和基本布置 激光雷达设计: 基本思想和基本原则 总结 介绍 激光雷达结构是激光 ...