一旦能够找到元素,它就可以完成。如果不是,它将引发错误并停止。轮询时间还是非常特定于驱动程序的实现(不是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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)