2016-03-20 11 views
1

私のアプリは現在、isElementPresentを使用してiframeを待っています。seleniumjs utill要素が入力準備完了です

私は現在、iFrame自体に問題があります。inputコンポーネントがページに表示され、キーを受け入れる準備が整うまで待つ必要がありますが、ページが読み込まれてアプリがクラッシュする速度が遅くなる場合がありますiframeコンポーネントのキー入力)

エラーメッセージ:ElementNotVisibleError: element not visible

Login.prototype.waitForIframeField = function(){ 
    var self = this; 
    return this.driver.wait(function waitForInputField() { 
    return self.driver.isElementPresent(self.page.usernameInputField.selector); 
    }, this.config.driver.defaultTimeout); 
} 

私はまた、それがまたno such elementと同じ問題を行っているが.findElement().isDisplayed()を使用することを試みました。

答えて

1

特定elementIsVisible built-in expected conditionがあります:あなたもableToSwitchToFrameに切り替えることにより、あなたのiframeの待ち時間が改善される場合があります

driver.wait(until.elementIsVisible(driver.findElement(self.page.usernameInputField.selector))); 

注意。

+0

これを使用しようとすると、element.isDisplayedが{ "xpath"のセレクタを使用している関数ではありません: "// * [@ id = \" username \ "]" }これを引き起こしている可能性があることを知っている – user2950720

+0

@ user2950720私は更新を行った - それはこのように動作するのだろうか?ありがとう。 – alecxe

関連する問題