Selenium隐式等待是否总是占据整个等待时间,还是可以更快地完成?

Selenium隐式等待是否总是占据整个等待时间,还是可以更快地完成?,第1张

Selenium隐式等待是否总是占据整个等待时间,还是可以更快地完成?

一旦能够找到元素,它就可以完成。如果不是,它将引发错误并停止。轮询时间还是非常特定于驱动程序的实现(不是Java绑定,而是驱动程序部分,例如:FireFox扩展,Safari扩展等)。

正如我在这里提到的,这些是非常特定于驱动程序实现的。所有与驱动程序相关的调用都通过

execute
方法进行。

我正在介绍该

execute
方法的要点(您可以在此处找到完整的源代码):

protected Response execute(String driverCommand, Map<String, ?> parameters) {    Command command = new Command(sessionId, driverCommand, parameters);    Response response;    long start = System.currentTimeMillis();    String currentName = Thread.currentThread().getName();    Thread.currentThread().setName(        String.format("Forwarding %s on session %s to remote", driverCommand, sessionId));    try {      log(sessionId, command.getName(), command, When.BEFORE);      response = executor.execute(command);      log(sessionId, command.getName(), command, When.AFTER);      if (response == null) {        return null;      }      //other pres }

该行:

response = executor.execute(command);

说了整个故事。

executor
属于类型
CommandExecutor
,因此所有调用都转到特定的驱动程序类(如)
ChromeCommandExecutor,SafariDriverCommandExecutor
,该类具有自己的处理方式。

因此,轮询取决于驱动程序的实现。

如果要指定轮询时间,则可能应该开始使用ExplicitWaits。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5641954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存