0

我目前正在将 C# Selenium 框架翻译成 Java。在该框架中,我有一个返回当前 WebDriverWait 的属性;

private WebDriverWait elementFindTimings;
.
.
.
public TimeSpan FindTimeout { get { return elementFindTimings.Timeout; } }

我已将其翻译为 Java get 方法;

private WebDriverWait elementFindTimings;
.
.
.
\\ The .getTimeout() method does not exist in the WebDriverWait class, I've
\\ put it in for example of what I'm trying to do.
public Duration getFindTimeout() { return elementFindTimings.getTimeout(); }

但是,Java WebDriverWait(扩展了 FluentWait 实现 Wait)似乎没有使我能够获取 Duration 值的方法。显然我在这里遗漏了一些东西,因为使用 WebDriverWait 的 WebDriver 代码需要获取持续时间。作为 Java 新手,我可能在这里遗漏了一个关键的 Java 语言。那么,如何获得 WebDriverWait 持续时间?

4

2 回答 2

0

首先,我不明白你为什么需要它,正如@Mat 所说,你不能直接这样做。但是,作为一种解决方法,每当您在 WebDriverWait 上设置超时值时,也将其存储在单独的字段中,然后在您需要知道超时值时读取该字段。您可能可以从 WebDriverWait 派生一个类,并将该值保存在该类内的一个新字段中,并为其提供一个 getter。

于 2018-03-17T06:19:17.630 回答
0

不可能。

查看 WebDriverWait 和 FluentWait 类,持续时间和内部持续时间是私有的,并且没有返回它们的公共/受保护方法。

它们不需要公开,因为它们在 WebDriverWait 类内部使用 - 要轮询/等待的函数在.until方法中传递。

于 2018-03-15T20:52:49.767 回答