私はバインディングを使用Selenium Webdriver
してC#
、古い FirefoxDriver (FF 47 より前) から新しいMarionette driver
(FF47 以降) に切り替えようとしていSelenium 2.53.1
ますFF 47.0.1
。
唯一の問題は、select タグの下でオプション タグを選択する際に問題があるように見えることです。次のコードは、私がテストしている他のすべてのブラウザー (FF < 46、Chrome、IE) で機能します。次の引数をdropdownSelect
関数に渡しています。selectIWebElement
と検索するテキスト。関数定義は次のとおりです。
public static void dropdownSelect(IWebDriver driver, IWebElement inObject, string inText)
SelectElement()
他のすべてのブラウザーと同じように、クラスを使用しようとしました
select = new SelectElement(inObject);
//select the matching element
select.SelectByText(inText);
また、オプションのコレクションを取得し、両方を使用してコレクションをスクロールしようとしましたClick()
:
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
ReadOnlyCollection<IWebElement> optDropdown;
optDropdown = inObject.FindElements(By.TagName("option"));
foreach (IWebElement thsItem in optDropdown)
{
//check for matching text
if (thsItem.Text == inText)
{
// 1/4 second wait
Thread.Sleep(250);
thsItem.Click()
//exit foreach loop
break;
}
}
コードの代わりにjavascript
クリックthsItem.Click()
//click option element
js.ExecuteScript("arguments[0].click();", thsItem);
何も選択されず、エラーや例外はスローされません。何も選択せずに ただただ楽しく進んでいくだけ
何か間違ったことをしているのですか、それとも新しい Marionette ドライバーでまだ解決されていないことですか?