2014-09-04 84 views
2

如何在实习生中使用实习生的leadfoot API进行功能测试?显式硒在实习生中等待

有多种情况下,我想显式轮询,直到满足条件。例如,我想等到DOM中存在两个或多个元素。使用findAllByCssSelector会锁定整个隐式等待时间的执行,而不是在条件为真后立即返回。

所有我能看到的将帮助我的是帮助函数pollUntil,但它看起来像这样不能访问测试模块中定义的任何模块依赖项。

如何在pollUntil内使用类似jQuery的东西?

回答

2

findAllByCssSelector只在没有找到元素时才等待隐式等待。如果存在元素,则该方法立即以找到的方式结束,所以如果您需要等待特定数量的元素出现,这种方法并不理想。

pollUntil是有条件等待的方式。不过,您是正确的,它无法访问您的模块依赖项。您的依赖项将加载到Intern的测试运行器的上下文中,而pollUntil条件将在浏览器的上下文中运行。有几种方法可以将您需要的代码放入浏览器中。如果你控制测试页面,你可以修改它来在测试运行之前加载你需要的任何模块。如果您无法修改测试页面,则可以在测试中加载页面后使用executeAsync调用,将所需的任何模块注入页面上下文中。

+0

你确定在'findAllByCssSelector'上吗?等效的selenium webdriver.js函数隐式等待。 – Michael 2014-09-05 03:24:30

+0

请参阅:https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.html#findElements(org.openqa.selenium.By) – Michael 2014-09-05 03:35:16

+0

实际上,在重新阅读链接时,它看起来像你指定的行为......虽然我不知道什么“这种方法受到执行时有效的'隐含等待'时间的影响。 – Michael 2014-09-05 03:43:38