示例:等待
<select id="myselect"></select>
填充
<option value="123">One-two-three</option>
<option value="abc">ABC</option>
...
之前我问过这样的问题,但这一次,我有一个更复杂的情况:
我不知道他们的选项值是多少;我不知道会有多少人填充;
对于这种情况,它是time.sleep()
最好的方法吗?
答案 0 :(得分:1)
可以肯定的是,您需要某种已知信息,例如最后一个选项是什么,或者您期望的总数。否则,你基本上假设它已经完成了。如果出现某种导致元素出现延迟的延迟,您可能会错过它。
您可以计算数字,睡眠,然后再次计算数字,看看是否有变化。如果没有,那表明你已经完成了,但是再一次,延迟仍然可能发生。
答案 1 :(得分:1)
我不懂Python(我使用的是Java),所以我无法帮助你解决语法问题。
您可以使用FluentWait计算两次选项的数量,相隔几毫秒。如果计数匹配,那么你就可以了。
答案 2 :(得分:0)
如果您的Web服务器具有公共API,可以检索下拉列表中应显示的完整选项列表,则可以使用另一个选项。然后,您就可以发出api请求以获取应该显示在菜单中的选项列表,而无需实际查看菜单。
您可以继续测试每个菜单选项,并根据需要等待每个目标菜单项。