-1

Selenium Web Driver を使用して、オンライン バンキング トランザクション アプリケーションのテストを開始しました。

好きだけど、何かがっかりする。次のコードでログイン画面にアクセスするとします。

    driver.get("https://webdev.myurl:18113/");
    WebElement element = driver.findElement(By.name("username"));
    element.sendKeys("xxxx");
    element.submit();

ブラウザの起動とページの読み込みと表示。しかし、ページが外部サイトから要素をロードしようとしているように見え、findElement (2 行目) はこれらの要求が完了するのを待っています!

この動作をバイパスする方法はありますか?

私もこれを試しました:

    WebElement element = (new WebDriverWait(driver, 10)).until(new  ExpectedCondition<WebElement>() {
        @Override
        public WebElement apply(WebDriver d) {
            return d.findElement(By.name("username"));
        }
    });

ただし、この行はページが完全に読み込まれたときにのみ実行されるように見えるため、役に立ちません。

編集: 私はここにいる男の 1 人と話しました..彼は ipinvite.iperceptions.com が私たちのアプリによって呼び出されていないと言いました.!!! 実際、サイトを FF でロードすると、この呼び出しが表示されない?!

Selenium Web ドライバーはこのサイトを呼び出します: ipinvite.iperceptions.com?

誰でも同じ問題がありますか?

4

3 に答える 3

1

暗黙の待機時間とページの読み込み時間を 0 に設定してみてください。Google の「selenium 暗黙の待機時間」と「selenium ページの読み込み時間」

于 2012-05-29T19:10:28.217 に答える
0

関数のタイムアウトはgetまだ実装されていません。新しい FirefoxDriver を作成するとき、各コマンドを待機する最大時間であるコマンド タイムアウトを指定できるようにするオーバーロードがコンストラクターにあります。

この投稿の回答を参照できます

于 2012-05-29T19:33:34.997 に答える
-3

わかりました、私は問題を見つけました。プロキシ パラメータを設定していた FirefoxProfile への setPreference をコメント アウトしました。とにかく必要ないことに気づきました。そして今、この奇妙なipinvite.iperception.comへの呼び出しはもうありません!

返信にお時間をいただきありがとうございます

よろしく

于 2012-05-29T19:46:15.553 に答える