Selenium 求助:input 型的下拉框输入文本后文本会消失

lyyyyyyy · 2022年07月18日 · 最后由 lyyyyyyy 回复于 2022年07月22日 · 7176 次阅读

今天弄了一下午没弄出来,问题如下。
这儿是一个 input 框,输入值以后会跳出查询的选项,然后选择即可。但是 selenium 输入文本内容之后会自己消失 (手动操作的时候,在没选择选项之前,焦点消失输入的内容也会消失),导致后续定位不到选项。有大佬遇到过吗?

正常情况下这个选项会出来

共收到 14 条回复 时间 点赞

可以试试先点击这个输入框,再输入

这是前端组件的原因,这个组件归根结底是个下拉选择框,不是输入框,输入只是让你搜索使用,不是给你输入用的

義经 回复

嗯试过,不起作用

Chras 回复

是的,但是您有解决办法吗?

lyyyyyyy 回复

可以尝试分三步:第一步通过 js 设置该组件获取焦点,第二步输入,第三步选择

我们公司的项目,类似于这样,输入内容后,选择下拉框才能筛选。

我的做法是
第一步,输入框输入内容;
第二步,等待一下,等待下拉框内容架子啊出来;
第三步,因为我知道我输入的肯定存在,选择选择第一个内容就可以了。

你可以试一下,下拉框出来的时候,看下拉框的值是不是可以定位出来

不清楚你是怎么操作的

按正常来说 输入查询字符后 列表展示过滤后的信息 再选择你需要的选项即可 不存在丢失焦点之类的 如果 selenium 提供的 click 不好用可以尝试下用 JavaScript 的 click 方法点击

你得把你的代码贴出来看看才能更好的知道是什么问题
初步猜测是元素查找等待方法写得有问题导致的

已解决,之前用了显示等待搜索出来的元素不知为何焦点会消失,换成 sleep() 就可以出现了,期待后续能有更好的解决办法。

是的,看起来是一样的 behavior,我是加了强制等待去试的,不太稳定

fiskeryang 回复

后面会尝试一下然后告诉您结果

Tester_谜城 回复

这种比较初级的问题一般不会犯,操作完焦点丢失我第一次遇到

lyyyyyyy 回复

可以在查找元素的时候,使用等待元素可见, 点击之前,使用等待元素可点击

Tester_谜城 回复

显示等待肯定是用了的

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