我正在嘗試使用以下代碼創建自定義 Selenium 顯式等待
class TabsOpened implements ExpectedCondition {
int expectedTabs;
public TabsOpened(int exp) {
this.expectedTabs = exp;
}
@Override
public Boolean apply(Object driver) {
ArrayList<String> allWindowHandles = new ArrayList<> (((WebDriver)driver).getWindowHandles());
return allWindowHandles.size()== this.expectedTabs;
}
}
然后
wait.until(new TabsOpened(2));
但是我在編譯時收到這些警告
Note: Tests.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
使用 -Xlint:unchecked 標志編譯我得到
Tests.java:116: warning: [unchecked] unchecked method invocation: method until in class FluentWait is applied to given types
wait.until(new TabsOpened(2)); // Wait 3 seconds or until 2 tabs are opened
^
required: Function<? super T,V>
found: TabsOpened
where T,V are type-variables:
T extends Object declared in class FluentWait
V extends Object declared in method <V>until(Function<? super T,V>)
Tests.java:116: warning: [unchecked] unchecked conversion
wait.until(new TabsOpened(2)); // Wait 3 seconds or until 2 tabs are opened
^
required: Function<? super T,V>
found: TabsOpened
where T,V are type-variables:
T extends Object declared in class FluentWait
V extends Object declared in method <V>until(Function<? super T,V>)
關于如何解決這個問題的任何想法?我正在使用硒 2.53
uj5u.com熱心網友回復:
我對這個框架不熟悉,但是根據你正在擴展的介面的javadoc,你應該寫implements ExpectedCondition<Boolean>,重寫方法的引數應該是型別WebDriver,而不是Object。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/439678.html
