selenium处理12306出发地value值修改不成功

2023-11-17

不知道你们在使用ui框架编写12306时,有没有遇到过这样的问题.
在使用selenium去编写场景时发现出发地这个input标签,每次都没办法按照你的预期去修改值
在这里插入图片描述
例如:在这里插入图片描述
首先在浏览器里使用document发现完全可以修改掉输入框的值.然后兴致勃勃的 使用webdriver来加载js语法

    from_stat_js = """
    var a= document.getElementById("fromStationText")
        a.value='蚌埠南'
    
    """
self.driver.execute_script(self.from_stat_js)

然后运行!
在这里插入图片描述
没错!!报错了.js加载失败 ,!!让你摸不着头脑,然后我不信!
在这里插入图片描述
然后,我就把出发,到达,和点击查询,全部使用js来加载…
就没有然后了…我们来看第二个
列如2:
既然js使用不了,那肯定很多人跟我的想法一样,第一时间又想到了selenium里面的键盘库,KEYS

        wait(self.driver, self.query)
        self.driver.find_element(*self.form_stat).send_keys(from_name, Keys.ENTER)

这个地方逻辑就是,先定位元素,然后send_keys是输入值,然后利用键盘回车,模拟出真是场景来跳到下一个输入框!
没错!这个方法我在第一次尝试的使用成功了!但是,本着自动化最少成功5次的原则,我从新执行了一遍.发现,没错!!!什么都没动!!也没报错!!但是,出发地变的不对了!!
在这里插入图片描述
在这里插入图片描述
然后我开始疯狂打断点,一点一点运行.发现.断点调试没有任何问题.每次都是我输入的出发地和到达地.

那么问题到底出在哪里了呢?究竟发生了什么灵异事件,导致了输入文本不一致呢???
在我无法找到问题的时候,我使用了强制等待

time.sleep(12)

没错,你没看错,我强制等待了12秒!每一步,以保证每次运行,我都能看的清楚!
然后…我发现了问题所在
在这里插入图片描述
没错!!每次都被输入框里的文本给影响了…输入的值没有了.只剩下了回车键!!!所以默认选了第一个北京北!

既然找到了原因!那么接下来.就先把输入框文本清除掉,然后输入值,然后在下一步

    def input_winds(self, stat_name, end_name):
    """  这里建议拆分开来写,不然会出现某些动作同时执行,导致报错"""
    # 隐形等待,等待元素出现,这里是我自己封装的方法
        wait(self.driver, self.query)
        # 这里加的强制等待,可加可不加,为了好定位我才加的
        time.sleep(2)
        # 这里获取到的是Webdriver对象
        a = self.driver.find_element(*self.from_stat)
        # 清除输入框
        a.clear()
        # 等待1s
        time.sleep(1)
        # 再次填写出发地
        a.send_keys(stat_name)
        # 在等待
        time.sleep(1)
        # 回车键
        a.send_keys(Keys.ENTER)
        time.sleep(2)

在这里插入图片描述
程序写入正确了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium处理12306出发地value值修改不成功 的相关文章

  • Javascript 3d 绘图实用程序? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有什么好的 javascript 3d 绘图实用程序吗 我知道每个网站都推荐过画布 3d 图
  • Buildozer Numpy RuntimeError:工具链损坏:无法链接简单的 C 程序

    用 Python 编写我的第一个 Android 应用程序并使用 Buildozer 对其进行打包 因为稍后在项目中需要使用numpy 所以我尝试打包以下测试代码 import numpy import kivy kivy require
  • 更新或插入 MySQL Python

    如果记录已存在 我需要更新一行 如果不存在 我需要创建一个新记录 我理解 ON DUPLICATE KEY 将使用 MYSQLdb 完成此操作 但是我无法使其正常工作 我的代码如下 cursor database cursor cursor
  • 在Python中将用户昵称转换为正式名字

    我正在尝试根据 Python 中的用户名字和姓氏映射来自不同系统的用户 一个问题是 名字在很多情况下都是 昵称 例如 对于用户来说 他的名字在一个系统中是 Dave 而在另一个系统中是 David python 中有没有简单的方法可以将这些
  • 创建 df 以生成给定格式的 json

    我正在尝试生成一个 df 来生成下面的 json Json数据 name flare children name K1 children name Exact size 4 name synonyms size 14 name K2 chi
  • 将 Selenium 与 PyCharm CE 结合使用

    我正在尝试将 Selenium 与 PyCharm CE 一起使用 我已经使用 pip install Selenium 安装了 Selenium 并且可以通过终端使用它 但是当我尝试将它与 PyCharm 一起使用时 出现导入错误 Imp
  • 我无法设置顶级标题

    我想为 TopLevel 设置标题 但 TopLevel 显示 Root 的标题 我认为我的下一个脚本与 TkInter 文档中的示例相对应 但给了我不好的结果 你能解释一下 为什么我的设置master title 顶部 in 应用程序顶部
  • 如何更改Python使用的SQLite版本?

    我在 Debian 9 12 上安装了 Python 3 8 和 SQLite 3 16 2 并且需要升级到较新版本的 SQLite 我已经下载并编译了 SQLite 网站上提供的合并 并将其放入 usr bin 所以当我这样做时 sqli
  • Google App Engine self.redirect() POST 方法

    在 GAE Python 中 使用 webApp 框架 调用 self redirect some url 通过 GET 方法将用户重定向到该 URL 是否也可以通过带有一些参数的 POST 方法进行 重定向 如果可以的话 怎样做 Than
  • 如何使用 SymPy 求给定一阶导数的 n 阶导数?

    Given some f and the differential equation x t f x t how do I compute x n t in terms of x t For example given f x t sin
  • 了解字典的深度

    假设我们有这个字典 d a 1 b c 了解嵌套的最直接方法是什么depth of it 您需要创建一个递归函数 gt gt gt def depth d if isinstance d dict return 1 max map dept
  • Kotlin JavaScript 到 TypeScript 定义文件

    我已经找到了ts2kt 库 https github com Kotlin ts2kt这将从任意位置创建 Kotlin 头文件 d ts文件 但是 我想朝相反的方向走 我想构建一个可以编译为 JavaScript 的 Kotlin 库 但我
  • Python:如何对数组 X 进行排序,但对 Y 进行相同的相对排序?

    例如 X 5 6 2 3 1 Y 7 2 3 4 6 我对X进行排序 X 1 2 3 5 6 但我希望对 Y 应用相同的相对排序 以便数字保持与以前相同的相对位置 Y 6 3 4 7 2 我希望这是有道理的 通常 你会做一个zip sort
  • 将索引数组转换为 NumPy 中的 one-hot 编码数组

    给定一个一维索引数组 a array 1 0 3 我想将其一次性编码为二维数组 b array 0 1 0 0 1 0 0 0 0 0 0 1 创建归零数组b有足够的列 即a max 1 然后 对于每一行i 设置a i 第 列 至1 gt
  • KML 中的 JavaScript 被 Google 地球插件忽略

    我创建了一个简单的 KML 文件 该文件可以在独立的 Google 地球客户端中运行 但在 Google 地球插件中根本无法运行 无论浏览器如何
  • jQuery 倒计时插件 - 只显示非零周期

    我正在使用 jQuery 倒计时插件编写倒计时 我只希望它显示活动 非零 周期 例如代替 剩余时间 0 天 0 小时 13 分 20 秒 它应该只显示 13 分 20 秒 我的代码是 countdown countdown expiryUr
  • 在 python 中使用 re.sub 将字母变成大写?

    在许多编程语言中 以下内容 find foo a z bar并替换为GOO U 1GAR 将导致整个匹配项变为大写 我似乎无法在 python 中找到等效项 它存在吗 您可以将函数传递给re sub http docs python org
  • *Python 内的 Kaggle API 文档?

    我想写一个python从 Kaggle com 下载公共数据集的脚本 Kaggle API 是用 python 编写的 但是我能找到的几乎所有文档和资源都是关于如何在命令行中使用该 API 的 而关于如何使用kaggle图书馆内python
  • ReactJS setState 仅在嵌套在 setState 中时才有效

    问题 当我使用 this setState 并在回调中输出状态时 它根本不会改变 但是当我将 setstate 嵌套在 setstate 中时 它将正常工作 例子 这不行 this setState data newData 这确实有效 t
  • 如何测试send_file烧瓶

    我有一个小型烧瓶应用程序 它需要上传一些图像并将它们转换为多页 tiff 没什么特别的 但是如何测试多个文件的上传和文件下载呢 我的测试客户端 class RestTestCase unittest TestCase def setUp s

随机推荐

  • 万万没想到,曾经以为的 VSCode 专属代码工具,竟然可以这样…

    如果你知道 VSCode 一说起它 你可能第一个想到的就是把它当做一个代码编辑器 而它的界面应该可能大概率是这样的 如果你恰好又是个程序员 那你可能经常会用到它 不管是 Python JS 还是 C 等各种语言对应的文件 都可以用它来进行简
  • Java中使用MultipartFile 接受图片或者文件超过2MB就会出现异常MultipartFile类型不能接受

    解决方法 在配置文件中写入这个配置 然后就可以根据业务在进行限制了
  • 混淆保护需正确命名!看.NET Core代码保护工具.NET Reactor如何规定

    NET Reactor是一个功能强大的代码保护和软件许可系统 适用于为 NET Framework编写的软件 并支持生成 NET程序集的所有语言 NET Reactor迎来了久违的版本更新 进入v6 3 0 0全新时代 支持Blazor保护
  • 大端对齐 和小端对齐

    大端对齐 高内存地址放整数高位 低内存地址放整数低位 例如x86 arm都是采用大端对齐 小端对其 高内存地址放整数低位 低内存地址放整数高位 例如unix大型服务器 转载于 https www cnblogs com Json28 p 1
  • Linux内核文件系统知识大总结

    1 文件系统特点 文件系统要有严格的组织形式 使得文件能够以块为单位进行存储 文件系统中也要有索引区 用来方便查找一个文件分成的多个块都存放在了什么位置 如果文件系统中有的文件是热点文件 近期经常被读取和写入 文件系统应该有缓存层 文件应该
  • crash 工具使用

    1 rd 命令 用法 读取内核虚地址或者内核符号值 默认16进制显示 类型为unsigned long 并且会将值对应的ascii码显示出来 rd lt 内核地址 gt 或 rd lt 内核符号 gt 如果不需要将右边的ascii码显示出来
  • 【AIX 命令学习】lspv -M hdisk1

    lspv M hdisk1查看 hdisk1物理分区与逻辑分区的对应关系 pvname PP PP LVname LP COPY PVname 系统指定的物理卷名称 PP物理卷上的物理分区编号 如果一段连续的物理分区是空闲的 则使用一段PP
  • 计算机网络之7层协议

    7层协议图解 通俗的理解 1 首先物理层解决两个硬件之间怎么通信 具体就是一台发些比特流 然后另一台能收到 物理层的作用 主要定义物理设备标准 如网线的接口类型 光纤的接口类型 各种传输介质的传输速率等 它的主要作用是传输比特流 就是由1
  • el-tabs中使用Echarts警告。Can‘t get DOM width or height. Please check dom.clientWidth and dom.clientHeight

    具体警告 Can t get DOM width or height Please check dom clientWidth and dom clientHeight They should not be 0 For example yo
  • SnowFlake 雪花算法实现以及详解

    背景简介 现在的服务基本是分布式 微服务形式的 而且大数据量也导致分库分表的产生 对于水平分表就需要保证表中 id 的全局唯一性 对于 MySQL 而言 一个表中的主键 id 一般使用自增的方式 但是如果进行水平分表之后 多个表中会生成重复
  • 软件测试基础之软件缺陷处理

    一 什么是缺陷 不满足用户确定需求 影响软件功能实现的问题 故障 缺陷就是人们通常所说的bug ex 一下哪一种选项不属于软件缺陷 A 软件没有实现产品规格说明所要求的功能 B 软件中出现了产品规格说明不应该出现的功能 C 软件实现了产品规
  • 【电路设计】RC振荡器 - 文氏电桥振荡器

    一 文氏电桥振荡器的工作原理 文氏电桥振荡器广泛用于产生几Hz到几百kHz频段范围的可变频率振荡器 主要由两部分构成 具有正反馈作用的RC串并联选频网络 gt 以满足相位平衡条件 具有负反馈作用的同相放大器 gt 以满足振幅平衡条件 其工作
  • Qt中用textEdit发送文本遇到的换行问题

    用textEdit发送文本遇到的换行问题 在开发BLE通讯的过程中遇到了以下问题 在自己写的BLE上位机的输入框textEdit中输入数据 回车换行之后发送 但串口调试助手处接收的数据没有换行 但是在串口调试助手的输入框中输入数据再回车换行
  • Blender使用maya系快捷键

    文章目录 第一步 将config文件夹放入 第二步 将maya快捷键 以及类maya面板放入 空格以及右键的饼面板 第三步 在blender里将mayaKey里的快捷键导入 并选择 第四步 融合blender本身的快捷键 可选 1 从ble
  • 英伟达驱动更新记录_N卡驱动更新软件(NVIDIA GeForce Experience) v3.16.0.122 官方版

    NVIDIA GeForce Experience显卡驱动更新软件可以帮助你检查计算机的geforce驱动程序 并且将其更新到最新的版本 更新显卡驱动有利于更稳定流畅的运行游戏 功能介绍 1 让驱动程序始终处于最新状态 GeForce Ex
  • Docker容器之私有仓库(Harbor)

    创建私有仓库 下载registry镜像 docker pull registry 指定镜像仓库地址 vim etc docker daemon json insecure registries 192 168 159 11 5000 添加此
  • java.lang.NoSuchMethodError: org.springframework.data.redis.core.StringRedisTemplate.delete redis删报错

    java lang NoSuchMethodError org springframework data redis core StringRedisTemplate delete Ljava lang Object V springboo
  • KEIL 断点调试技巧

    实际项目中断点调试起了很大作用 Keil的断点调试功能很强大 除了普通的设置断点运行到断点处 还有单步 跳转 除了这些常规的方法 对于一些疑难杂症 常规方法就有点杯水车薪了 下面我总结下我在工作中常用的几种断点调试技巧 1 断点位置运行次数
  • Linux 中的 chsh 命令及示例

    Linux中的chsh命令用于更改用户的登录shell 当前为登录shell Shell是与操作系统交互的用户界面 可以被认为是操作系统的外层 bash shell 是 Linux 中使用最广泛的登录 shell 之一 该命令允许用户从当前
  • selenium处理12306出发地value值修改不成功

    不知道你们在使用ui框架编写12306时 有没有遇到过这样的问题 在使用selenium去编写场景时发现出发地这个input标签 每次都没办法按照你的预期去修改值 例如 首先在浏览器里使用document发现完全可以修改掉输入框的值 然后兴