selenium处理12306出发地value值修改不成功 您所在的位置:网站首页 出发地和到达地 selenium处理12306出发地value值修改不成功

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

2024-07-08 13:44| 来源: 网络整理| 查看: 265

不知道你们在使用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)

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有