3

自分の管理下にないページにアクセスしたい。このページは遅い get リクエストを実行している可能性がありますが、メインの html は完全に読み込まれて表示されています。私は多くのオプションを試しましたが、それを作ることができました。一部のfirefoxWebDriver.get(...)サイトでは現実的な時間内に終了しません。

問題を再現するために、問題を示すこの小さな UnitTest を作成しました。

public class Timeout  {

    private FirefoxDriver   driver;

    @Before
    public void setup() {
        final FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("dom.max_script_run_time", 0);
        profile.setPreference("webdriver.load.strategy", "fast");

        this.driver = new FirefoxDriver(profile);

//      this.driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
//      this.driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);

    }

    @Test(timeout = 15000)
    public void shouldRetriveREDCAFEPageQuiteFast() {
        this.driver.get("http://redcafe.vn/Home/su-kien-binh-luan/kagawa-tu-choi-mac-ao-so-7");
    }

    @Test(timeout = 15000)
    public void shouldRetriveMUFCPageQuiteFast() {
        this.driver.get("http://news.mufc.vn/detail/172-hoan-tat-giay-phep-lao-dong-m-u-chinh-thuc-so-huu-kagawa.html");
    }

    @After
    public void tearDown() {
        this.driver.close();
    }
}

助けてくれてありがとう。

4

1 に答える 1

3
<driver>.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS); 

ページ読み込みタイムアウトを 60 秒に設定し、その後エラーをスローします。get()これは、最初の通話の前に設定する必要があります。

API は、Webdriver リリース 2.20.0 以降でサポートされています。

新しいタイムアウト API については、API リファレンスを参照してください。

于 2012-08-21T10:52:15.570 に答える