0

入力フィールドが空の場合、Selenium を使用してエラー メッセージの表示をテストしています。入力要素へのラベルとして設計されたエラー メッセージ。メッセージが非表示の場合、属性「display: none;」を持ちます。.

そのメッセージをテキストで見つけてisDisplayed()メソッドを呼び出すと、メッセージが表示されていない場合でも、常に true が返されます。私は Java でテストを書いているので、isVisible()メッセージはありません。

メソッドgetAttribute("style")を試しましたが、空の文字列が返されます。メソッドgetCssValue("display")は、ページ上に値"none"がある場合でも"block"を返します。

click()メソッドを呼び出した後にElementNotVisibleExceptionが発生すると予想していましたが、何も起こりませんでした。

何か案は?回避策?

HTML の例:

<form id="from id" style="display: block;">

<input id="input" name="input">

<label for="input" generated="true" style="display: none;">Error text here.</label>

</from>

4

1 に答える 1

1

WebDriverWait() を使用して WebElement を見つけてみてください。要素が表示されるまで待つことができます。

/**
 * 
 * Get a Web Element using WebDriverWait()
 * 
 */

public WebElement getInputBox() throws TimeoutException {

    WebElement webElement = null;
    WebDriverWait driverWait = new WebDriverWait(5);

    // find an element using a By selector

    driverWait.until(
            ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#input")));

    webElement = driver.findElement(By.cssSelector("#input"));

    return webElement;
}
于 2013-09-21T00:07:00.183 に答える