通过ExpectedCondition方法使用WebDriverWait出错ErrorOfElementLocated()

时间:2018-04-02 06:43:32

标签: java selenium-webdriver

编译时出错:

public static WebDriverWait wait = null; 
wait = new WebDriverWait(driver, 120);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id(HomeScreen.tabHome_ID)));

我使用的是IntelliJ IDE

错误

Error:(51, 19) java: method until in class org.openqa.selenium.support.ui.FluentWait cannot be applied to given types;
required: java.util.function.Function<? super org.openqa.selenium.WebDriver,V>
found: org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.WebElement>
reason: cannot infer type-variable(s) V
(argument mismatch; org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.WebElement> cannot be converted to java.util.function.Function<? super org.openqa.selenium.WebDriver,V>)

1 个答案:

答案 0 :(得分:2)

这可能是JRE版本的一个问题。如果您正在使用maven将此添加到POM文件以指定Java版本(您可以将1.8更改为您正在使用的任何版本)

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
   </plugins>        
</build>

您也可以在文件&gt;下进行更改设置&gt;构建,执行,部署&gt;编译器&gt; Java编译器,位于目标字节码版本列中。