-1

一般的な待機メソッドを使用できますか...つまり(1.ページの読み込みを待機します2.要素を見つけます3.更新が見つからない場合)、これは流暢な待機のタイムアウトまで続きます。

4

2 に答える 2

1

すべてにWebdriverWaitを使用できます- ( 1.ページの読み込みを待つ 2.要素を見つける 3.更新が見つからない場合)

   WebDriverWait wait = new WebDriverWait(driver, 18); // Times Out after 18 Seconds
    PageUtil.refreshObject(driver, By.linkText("Element")); // refresh the Element
    wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Element"))); // wait till  Element is Enabled and Visible before Clicking on that Element

    /**
    *Pass the Control to that Element and Click on that Element (preferred in IE)
    *
    */
    WebElement element = driver.findElement(By.linkText("Element"));
    element.sendKeys(org.openqa.selenium.Keys.CONTROL);
    element.click();

ここにRefreshObjectメソッドがあり、PageUtilは ClassName です。

public static WebElement refreshObject(WebDriver driver, By locator) {
        int counter = 0;

        try {
            counter = counter + 1;

            return driver.findElement(locator);
        }

        catch (StaleElementReferenceException e) {

            return refreshObject(driver, locator);

        }

    }
于 2013-11-12T07:30:33.277 に答える
0

これを必要とする特別なビジネスケースはありますか? そうしないと、ドライバーオブジェクトをセットアップするときに暗黙の待機をセットアップできます。c# では、次のようになります。

myDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

多くの人は暗黙の待機を避けるべきだと言うでしょうが、便利なメソッドを構築する必要があると感じる場合は、暗黙の待機が望ましいかもしれません。

于 2013-10-23T19:33:22.623 に答える