Selenium 输入 a 触发调用接口返回下拉菜单的 list,但这个应该是 ajax 返回的数据,该如何选择任意其中一个呢?

zhangjg · May 10, 2019 · Last by zhangjg replied at May 13, 2019 · 1233 hits

更新问题:

如上图,输入a 触发调用接口返回下拉菜单的list,但这个应该是ajax返回的数据,html dom没有显示这些元素,该如何选择任意其中一个呢?

  • 问题已解决,使用
action.move_to_element_with_offset(element, x, y)

历史问题记录

目前遇到一个问题,我们的搜索框输入值以后会调用接口根据输入的值查询

self._find_element(xxx).send_keys(value)

这种send_keys直接发送值给input输入框是不会调用接口查询的,所有有什么其他方法可以触发这个接口查询吗?

在某度上搜到的都是 Python+Selenium操作之 键盘组合键 模拟操作
是不是可以通过模拟键盘输入事件输入值?请教路过的大牛帮忙看下,先谢了。

问题补充:

1.手动输入a时会调用接口返回list,但send_keys()就触发不了接口的调用
2.手动输入a后加上空格可以再次调用接口,send_keys(a) 后 加上 send_keys(Keys.SPACE)键盘事件也触发不了

----------- 以上问题暂时加个

ActionChains(self.driver).click(element).perform()

事件解决了

共收到 8 条回复 时间 点赞

有onchange,onkeypress 这类的事件吗,是否可以执行onchange的js方法

直接元素send_keys貌似是直接修改输入框的value,你可以试一下ActionChains的send_keys_to_element方法,太久没搞selenium,忘记了😂

zhangjg #3 · May 10, 2019 作者
llggww 回复

看了下dom 没有这些事件,目前用了 ActionChains 加个鼠标事件暂时可以触发接口了

zhangjg #4 · May 10, 2019 作者
独缺 回复

send_keys_to_element 试了下也不行,现在加个ActionChains().click()暂时解决了这个问题。然后出现新问题了。。。也帮看下哈,更新了内容 😂 😂 😂 😂

zhangjg 回复

你能看到的 应该都是有dom的 你再找找。。。

zhangjg #6 · May 13, 2019 作者
独缺 回复

没有的哦,这里应该是ajax返回的。

zhangjg 回复

直接找下拉列表的元素找不到吗?那不应该啊,如果实在找不到,那要不就结合Sikuli来做可能会好一些,不想调用Sikuli,也可以自己解析当前桌面截图像素来定位,建议还是尽量用dom

zhangjg #8 · May 13, 2019 作者
独缺 回复


这个好像可以哈

zhangjg 关闭了讨论 14 May 14:10
zhangjg selenium 定位不到下拉框元素 中提及了此贴 16 May 19:17
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up