入力ページを自動化するために C# で Selenium 2 WebDriver を使用しています。DOM が読み込まれると非表示になる検証概要コントロールがあります。追加の負荷がかかると次のようになります。
<div id='validation_summary' style='display: none'>
<div id='validation_message'/>
Selenium で pageObject を初期化すると、WebElement の Displayed プロパティが「false」に設定されます。これは私が期待することです。
送信ボタンをクリックすると、dom は次のように変更されます。
<div id='validation_summary' style='display: block'>
<div id='validation_message'>
<div><a>Fix Me</a></div>
</div>
次の方法で WebElement にアクセスしようとすると、検証のクリックが発行された後、Displayed プロパティはまだ「false」であり、追加された div は表示されません。
var validation = new WebDriverWait(_driver, TimeSpan.FromSeconds(10)).Until<IWebElement>((d)=>d.FindElement(By.Id('validation_message'));
これは実際に機能するはずですか?Selenium が DOM を現在の状態で評価するのに十分な知識を持っていることを期待する必要がありますか? 要素の Displayed プロパティを実際にどのように評価しますか? PageSource プロパティを見ると、テキストが存在することがわかります。変更が Selenium に反映されない理由がわかりません。