![](/img/trans.png)
[英]Wait until an element becomes visible using selenium-webdriver and PjantomJS
[英]Wait until condition is met Selenium-Webdriver
我正在嘗試在selenium-webdriver條件之上創建其他條件。 我仍在嘗試理解promise和回調的完整概念。 由於堆棧溢出的幫助,我得到了極大的改進。 我不確定如何在JavaScript中每隔這么多秒重復一次條件。 我的繼承權也可能是錯誤的。
var WebElementCondition = require('./selenium-webdriver/lib/until');
var ExpectedConditions = function()
{
this.waitForWindowWithTitle = function (title)
{
return driver.getAllWindowHandles().then(function (title, handles) {
console.log(handles.length + ' .then function');
for (var window in handles) {
if (window.title === title)
{
return true;
}
else
{
return false;
}
}
});
}
}
module.exports = ExpectedConditions;
require('util').inherits(module.exports, WebElementCondition);
在waitForWindowWithTitle函數中,我會做些什么
return driver.wait(10000).then(function() {
driver.getAllWindowHandles().then(function (title, handles) {
console.log(handles.length + ' .then function');
for (var window in handles) {
if (window.title === title)
{
return true;
}
else
{
return false;
}
}
});
});
您可以使用wait
來接受任何JS函數來創建自定義條件。 這是檢查角度准備就緒的示例。
// Wait for Angular to Finish
function angularReady(): any {
return $browser.executeScript("return (window.angular !== undefined) && (angular.element(document).injector() !== undefined) && (angular.element(document).injector().get('$http').pendingRequests.length === 0)")
.then(function(angularIsReady) {
return angularIsReady === true;
});
}
$browser.wait(angularReady, 5000).then(...);
wait<T>(condition: promise.Promise<T> | until.Condition<T> | ((driver: WebDriver) => T) | Function, timeout?: number, opt_message?: string): promise.Promise<T>;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.