为什么fluentWait()速度慢?

时间:2018-07-09 19:30:00

标签: java selenium

我在我的fluentWait()代码上使用了selenium。但是我注意到,尽管需要等待的元素已经加载到浏览器中,但仍在等待一段时间。这浪费很多时间,但我不知道原因。有谁知道为什么?

1 个答案:

答案 0 :(得分:2)

每个FluentWait实例定义了等待条件的最长时间,以及检查条件的频率。此外,用户可以配置等待以在等待时忽略特定类型的异常,例如在页面上搜索元素时的NoSuchElementExceptions。

spring.datasource.url=jdbc:h2:file:./test;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE

@ComponentScan(basePackages = "com.test")
public class CsvImport {

@Autowired
private Repository repository;

public static void main(String[] args) {
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(CsvImport.class);
    context.start();

    CsvImport csvImport = context.getBean(CsvImport.class);
    File file = new File(args[0]);
    if (file.isFile()) {
        csvImport.importCsv(file);
    }
    context.stop();
}

private void importCsv(File file) {
....
....

速度会变慢,因为:

  // Waiting 30 seconds for an element to be present on the page, checking
  // for its presence once every 5 seconds.

  Wait wait = new FluentWait(driver)
    .withTimeout(30, SECONDS)
    .pollingEvery(5, SECONDS)
    .ignoring(NoSuchElementException.class);

所以,这取决于您要使用什么。