0

「新規ユーザーとして登録」リンク テキストは、webdriver が取得するとすぐに (driver.get) ホームページに表示されます。それでも、ページ全体が読み込まれて行の下で実行されるのを待ちます。

driver.findelement(By.linkText("Register as new user")).click();

他の要素が表示されているかどうかに関係なく、webdriver がページに表示されるとすぐに要素をクリックする可能性はありますか? 私が使用している:JAVA、Ubuntu。

4

3 に答える 3

2

特に URL を開いた後、ページが完全にロードされるまで暗黙の待機によってドライバーが待機するようになるかどうかはわかりません。しかし、明示的な待機を試す価値はあります。以下のコードは、要素がクリック可能になるまでドライバーを待機させてから、要素をクリックします。指定された時間 (以下の例では 30 秒に設定されています) 内に要素がクリック可能にならない場合、ドライバーはTimeoutExceptionをスローします。

WebDriverWait wait = new WebDriverWait(driver, 30//unit time in seconds);

wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Register as new user"))).click();
于 2013-03-22T18:36:40.110 に答える
0

FireFoxDriverプロファイル設定を変更して、Firefoxが.clickを呼び出した後にページ全体が読み込まれるのを待たないようにすることができます。

        FirefoxProfile profile = new FirefoxProfile();
        profile.SetPreference("webdriver.load.strategy", "unstable");
于 2013-03-22T15:24:48.477 に答える