2017-08-31 11 views
-1

私はカスタムドロップダウンメニューから選択する問題を抱えている..私は、XPath、CssSelectorとIDを使用して、両方を試してみました。C#のセレン - ドロップダウンメニュー/コンボボックス

私はここのコードへのリンクを追加しました:

Picture of the code

私はID =「ctl00_ctl00_ctl00_MP_Blank_Body_MP_Base_Body_MP_TopSideMenu_Body_ctl00_cboBehandlingstype」

にアクセスするためにのdivクラス=「選択ボックス」にアクセスする必要があると思いますしかし、私は間違いを続けている。

IWebElement test = driver.FindElement(By.XPath("//div[@class='input']//div[@id='ctl00_ctl00_ctl00_MP_Blank_Body_MP_Base_Body_MP_TopSideMenu_Body_ctl00_cboBehandlingstype']")); 

は、誰かが私にドロップダウン内の項目へのアクセスを取得する方法についての手掛かりを与えることができます:

これは私が現在しようとしているが、任意の運なしでは何ですか?

ありがとうございました! :)

+0

これを使用しようとしている要素のhtmlを投稿してください。 – IamBatman

+0

[ask]、特に[mcve](MCVE)の部分、[どのくらいの研究努力が必要ですか](https://meta.stackoverflow.com/questions/261592/how-much-research-effort)をお読みください。 -is-expected-of-stack-overflow-users)これはあなた自身のプログラムをデバッグし、自分で問題を解決するのに役立ちます。あなたがこれを行い、まだまだ立ち往生している場合は、あなたがMCVEを投稿し、何を試したのか、そしてエラーメッセージを含む実行結果を投稿して、より良くあなたを助けることができます。また、ページや関連するHTMLへのリンクを提供してください。 – JeffC

+0

[コードのスクリーンショットは悪い考えです](https://meta.stackoverflow.com/questions/303812/discourage-screenshots-of-code-and-or-errors)の理由をお読みください。コードを貼り付け、正しくフォーマットします。 – JeffC

答えて

-1

は、あなたが代わりに "IWebElement" の "SelectElement" を使用する必要があります。この

var select = driver.FindElementById("ctl00_ctl00_ctl00_MP_Blank_Body_MP_Base_Body_MP_TopSideMenu_Body_ctl00_cboBehandlingstype"); 

var stringValues = select.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None); 

((IJavaScriptExecutor)driver).ExecuteScript("var select = arguments[0]; for(var i = 0; i < select.options.length; i++){ if(select.options[i].text == arguments[1]){ select.options[i].selected = true; } }", select, stringValues[0]); 
+0

それは私にエラーはありませんが、リストから何も選択されていません:) – jeez

+0

私は

0

を試してみてください。

SelectElement mySelect = new SelectElement(yourDriver.FindElement(By.Id("ctl00_ctl00_ctl00_MP_Blank_Body_MP_Base_Body_MP_TopSideMenu_Body_ctl00_cboBehandlingstype"))); 

mySelect.SelectByText("510111 Normalbehandling"); 
関連する問題