私はページ上のこの選択を持っている:Selenium 2 + WebDriver + .NET:selectが "display:none;"の場合、selectのオプションのテキストを取得できません。
<select multiple="" class="recipientsList" name="Recipients[]" id="To" style="display: none;">
<option value="User-6" class="">Coordinator, Test</option>
<option value="Course-4" class="">New Course 1</option>
<option value="UserType-6" class="">Coordinators</option>
<option value="UserTypeInCourse-4-6" class="">New Course 1 Coordinator</option>
</select>
そして、私はこのテストを実行している:
public IWebDriver WebDriver
{
get
{
// gets the current WebDriver instance, set up elsewhere at the beginning
// of the fixture
return ScenarioContext.Current.WebDriver();
}
}
public void SelectTest()
{
// code to navigate to proper page
var options = WebDriver.FindElements(By.CssSelector("select.recipientsList option"));
Assert.That(options, Is.Not.Empty, "No options found.");
Assert.That(!options.Any(option => string.IsNullOrEmpty(option.Text)), "Some or all options have blank text.");
// Actual useful assert
}
options
コレクション内のすべての要素が空の文字列を持っているため、2番目のアサートが失敗していますそれらのTextオブジェクトdisplay:none;
スタイルを追加したページでJavaScriptを削除すると動作します。これは、永続的な解決策ではありません。この選択は、FCBKcompleteによって拡張されているため、非表示にする必要があります。
.NETのSelenium 2/WebDriverで隠しセレクトオプションのテキストを取得するにはどうすればよいですか?
これは意味があります。 FCBKCompleteがレンダリングするオートコンプリートドロップダウンから情報を見つける方法を理解する必要があります。ありがとう! – adamjford
また、表示プロパティを変更してテキストを取得するJavaScriptを実行することもできます。スクリプトを実行するために、IWebDriverをIJavascriptExecutorにキャストする(私はJavaを使用しているので、インタフェース名に間違いがあるかもしれません) –