在基于js的用户界面上使用selenium测试(python)的怪异之处

在基于js的用户界面上使用selenium测试(python)的怪异之处,python,angularjs,selenium,webdriver,Python,Angularjs,Selenium,Webdriver,我们正在测试一个基于AngularJS的web应用程序。我已经遇到过两次了。这一次,我需要单击嵌入在链接标记中的下拉列表。我可以用ipython手动操作它,但一旦它在脚本中运行,下拉弹出窗口将不会显示为我可以用终端执行的操作 你对此有什么想法吗?从你的评论“实际上没有错误,元素被单击了”,那么我怀疑脚本运行得足够快,可以在JavaScript操作绑定到事件之前单击元素。您可以通过添加 import time time.sleep(4) 如果该操作在故意暂停时起作用,那么您可以非常确定它是绑定J

我们正在测试一个基于AngularJS的web应用程序。我已经遇到过两次了。这一次,我需要单击嵌入在链接标记中的下拉列表。我可以用ipython手动操作它,但一旦它在脚本中运行,下拉弹出窗口将不会显示为我可以用终端执行的操作


你对此有什么想法吗?

从你的评论“实际上没有错误,元素被单击了”,那么我怀疑脚本运行得足够快,可以在JavaScript操作绑定到事件之前单击元素。您可以通过添加

import time
time.sleep(4)
如果该操作在故意暂停时起作用,那么您可以非常确定它是绑定JavaScript和单击元素之间的竞争条件

你如何处理这件事取决于你自己。当事件被绑定时,可以以某种方式标记DOM。这是我过去使用过的一种技术


您可以在一个循环中执行一点JavaScript,该循环返回一些关于页面全局状态的信息,并使用这些信息来决定页面何时准备好与之交互

您在脚本中得到了什么错误消息?不点菜?元素不可见?完全回溯就好了。实际上没有错误,元素被单击了。