私は最近、セレンのjavascript webdriverで開発を開始しました。私が達成しようとしているのは、ウェブサイトにログインして別のページに移動することです。以下は私のコードスニペットです。上記のコードSelenium WebDriver implicitlyWait
var checkPaymentStatus = function() {
var driver = new webdriver.Builder().forBrowser('chrome').build();
driver.get('https://url/#/login');
driver.findElement(By.name('username')).sendKeys('user');
driver.findElement(By.name('password')).sendKeys('pass');
driver.findElement(By.name('loginForm')).submit();
driver.manage().timeouts().implicitlyWait(10000);
driver.get('https://url/#/report/advanced-options');
};
ログインまでの期待どおりに動作しますが、問題は、私は常に試みがレポート/上級オプションにをナビゲートする際に認証されていないエラーになってしまったとの暗黙の待ち時間のように思える機能していないのですですまたはdriver.getは、待機の前に実行されます。問題を解決するための提案は非常に高く評価されます。
implicitlyWaitは、()のタイムアウトを設定するために使用されますpage load timeoutではなく、driver.findElement()/ findElements()認証されていないエラーは、ログインが完了するのを待たずに、次のページを開く前にサーバー側が自動トークンをブラウザのCookieに挿入していないことが原因です。 implicitlyWait(10000)コード行を削除し、10秒後にsleepを追加します。スリープで問題が解決された場合は、スリープを明示的に待機に変更することができます – yong
@yong yes sleepで問題が解決されましたが、明示的に待機する方法はわかりません。あなたは私に例を与えてくれますか? – Lakmal
私はあなたがRatim Asanov – yong