我目前正在将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)似乎没有一种方法可以让我获得持续时间值。显然我在这里遗漏了一些东西,因为使用WebDriverWait的WebDriver代码需要获得持续时间。作为Java的新手,我可能在这里错过了一个关键的Java语言。那么,我如何获得WebDriverWait持续时间?
答案 0 :(得分:0)
没有办法。
查看WebDriverWait和FluentWait类,持续时间和内部持续时间是私有的,并且没有返回它们的公共/受保护方法。
它们不需要暴露,因为它们在WebDriverWait类内部使用 - 要轮询/等待的函数在.until
方法上传递。
答案 1 :(得分:0)
首先,我不确切地知道你为什么需要它,正如@Mat所说,你不能直接这样做。但是,作为一种解决方法,每当您在WebDriverWait上设置超时值时,也会将其存储在单独的字段中,然后在需要知道超时值时读取该字段。 您可以从WebDriverWait派生一个类,并将该值保存在该类中的新字段中,并为其提供一个getter。