Selenium 求助求助,selenium 实现非 input 标签的输入文本除了 js 还有其他办法么?

YXF · 2021年12月02日 · 最后由 TALKING_MUTE 回复于 2023年01月02日 · 5053 次阅读

如图所示的需求

以下是我的 js 实现

肉眼看确实把需要的内容输入到文本框中了,但是文字是置灰的,手动实际输入的文本是挺亮的,然后搜索时候还是被判定为无内容,这样还有别的办法么?以我有限的知识储备实在没有啥别的解决办法了😭 😭

共收到 13 条回复 时间 点赞
YXF #13 · 2021年12月02日 Author

百度/google 快翻遍了也没找到其他办法😭 js 还是一知半解的状态,实在没招了

之前也遇到过类似的,好像是需要先 click,才能传值

js 输完之后,再点一下这个输入框,如果光标定位到最后面的话,再模拟一下 backspace 键,删掉一位之后再试试

可以试一下

button = self.driver.find_element_by_xpath('//*[@class="xxx"]')
self.driver.execute_script('arguments[0].value="xxx;"',button)

placeholder一般是指输入框的隐藏解释内容,你定位这个即使用 JS 输入了,实际上也只是修改了隐藏解释内容,并不是 input 的实际内容,所以你查询为空很正常。你应该定位input标签去sendkeys才行

YXF #7 · 2021年12月02日 Author
陈恒捷 回复

还是大佬牛逼,这个确实是我粗心大意了,input 框在 span 标签上方的 div 里边包着了,我把所有的 div 都点开检查了,唯独没检查这个 div,我都想抽自己个嘴巴子😂 其实点开的话找到 input 框这个问题根本也就不是问题了。基础知识匮乏,这是痛点,尤其前端的知识储备几乎为零,见笑了

YXF #6 · 2021年12月02日 Author
黄clown 回复

嗯嗯,后来找到了,确实有 input 框,只是没找对地方。一般使用 chrome 右键元素检查会自动给定位到这个元素,这次没给直接定位到,于是就蒙圈了,一度以为不是 input 标签,闹笑话了😂

YXF #5 · 2021年12月02日 Author
Clouds 回复

主要没找对元素,试过先 click 再 send_keys😂 现在看来找不对元素其他办法都是进入误区了

YXF #4 · 2021年12月02日 Author
jerurry 回复

试过了,使用 js 赋值完光标是不能移动的。不过已经解决了,是元素没找对。还是感谢回答😀

YXF #3 · 2021年12月02日 Author

解决了,感谢回答😀

YXF 回复

不用那么激动,持续保持积累吧。现在除了布局外有特殊功能的标签不多,掌握起来不会花太多时间。

陈恒捷 回复

谢谢,谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册