私はC#
バインドでSelenium Webdriver
バインディングを使用していて、古いFirefoxDriver(FF47より前)から新しいMarionette driver
(FF47以上)に切り替えようとしています。 Selenium 2.53.1
とFF 47.0.1
のリリースで修正されたようです。C#:Marionetteドライバでドロップダウンアイテムを選択
唯一の問題は、選択タグの下でオプションタグを選択する際に問題があるように思われることです。次のコードは、テスト中の他のすべてのブラウザ(FF < 46、Chrome、IE)で動作します。私は以下の引数を私のdropdownSelect
関数に渡しています。選択するIWebElement
と検索するテキスト。ここでは関数の定義です:
public static void dropdownSelect(IWebDriver driver, IWebElement inObject, string inText)
私は他のブラウザ
select = new SelectElement(inObject);
//select the matching element
select.SelectByText(inText);
の全てを持っているとして、私はまた、オプションのコレクションを取得し、スクロールしようとしたSelectElement()
クラスに使用することを試してみましたコードのthsItem.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
クリック:両方Click()
を使用してコレクション
//click option element
js.ExecuteScript("arguments[0].click();", thsItem);
何も選択されず、エラーまたは例外はスローされません。
私は間違ったことをやっているのですか、それとも新しいマリオネットのドライバーとはまだ解決していますか?
同じ作業をしましたか?私はまったく同じ問題に直面している、私はこの問題を解決するために見つけることができるすべてのオプションを試して、どんな助けも素晴らしいだろう。 –