2017-01-20 10 views
1

私はSeleniumを初めて使用しています.JqueryUIを使いこなすページをテストする必要があります。私understadingが実行時にということであるのは、私が「高速」を選択したい「速度を選択」ドロップダウンから、今http://view.jqueryui.com/master/demos/selectmenu/default.htmlページJQuery UI select項目をドロップダウンから選択してください。C#

を見てみましょう

を誰もが 上で動作することができます例を取るために

jqueryUIは次のコードを表示せず、 "UL-LI" を作成するため、 "SelectElement"関数を使用できません。

View Source= 

     <label for="speed">Select a speed</label> 
     <select name="speed" id="speed"> 
      <option>Slower</option> 
      <option>Slow</option> 
      <option selected="selected">Medium</option> 
      <option>Fast</option> 
      <option>Faster</option> 
     </select> 

Runtime "Inspect element" you get: 

<div class="ui-selectmenu-menu ui-front ui-selectmenu-open" style="top: 94.5938px; left: 22px;"> 
    <ul aria-hidden="false" aria-labelledby="speed-button" id="speed-menu" role="listbox" tabindex="0" 
     class="ui-menu ui-corner-bottom ui-widget ui-widget-content" aria-activedescendant="ui-id-26" aria-disabled="false" style="width: 256px;"> 
     <li class="ui-menu-item"> 
      <div id="ui-id-26" tabindex="-1" role="option" class="ui-menu-item-wrapper ui-state-active">Slower</div> 
     </li> 
     <li class="ui-menu-item"> 
      <div id="ui-id-27" tabindex="-1" role="option" class="ui-menu-item-wrapper">Slow</div> 
     </li> 
     <li class="ui-menu-item"><div id="ui-id-28" tabindex="-1" role="option" class="ui-menu-item-wrapper">Medium</div></li> 
     <li class="ui-menu-item"><div id="ui-id-29" tabindex="-1" role="option" class="ui-menu-item-wrapper">Fast</div> 
     </li><li class="ui-menu-item"><div id="ui-id-30" tabindex="-1" role="option" class="ui-menu-item-wrapper">Faster</div> 
     </li> 
    </ul> 
</div> 

私は何をしたいことは

  1. では私にスピードメニュー要素
  2. を見つけるすべてのliのアイテムを見つけて、「高速化」を選択
  3. スピードメニュー要素をクリックしてくださいone

どうすればよいですか? 同じ問題を解決したリンクが見つかりましたが、C言語で問題を解決することはできません。 https://groups.google.com/forum/#!msg/selenium-users/uWmH_XuxcPM/2GVQnHd2aLIJ

助けてもらえますか? ありがとう

答えて

0

あなたがtodosと述べたように。その後

driver.FindElement(By.Id("speed-button")).Click(); 

speed-menu

のすべて liのタグを取得する - コードに従うと、あなたはスピードドロップダウンをクリックする必要がありsame-

まず達成するのに役立ちますspanだけそれがulliタグをロードします

IList<IWebElement> menuElements = driver.FindElements(By.XPath("//ul[@id='speed-menu']/li")); 

すべての要素を繰り返し、一致するものを見つけて選択してください。

foreach (IWebElement element in menuElements) 
{ 
    string value= element.FindElement(By.TagName("div")).Text; 
    if(value.Equals("Faster")) 
    { 
      element.Click(); 
    } 
} 

注: - 構文を確認してください。C#

+0

ありがとうございました!私は自分のシナリオに適応しています – developer9969

+0

どのように私は、次の= Browser.Driver.FindElements(By.XPath( "/ *終わりと@ ID = 'スピードメニュー']" ));これはうまくいきません。上記のように終わるid、またはIListで終わる親に属するすべての要素を取得したい menuElements = Browser.Driver.FindElements(By.XPath( "// ul [contains(@id ; – developer9969

+0

同じ './/*[starts-with(@id、 'speed-menu')]'または './/* [[speed-menu]/li] contains(@id、 'speed-menu')] '' ends-with'関数に問題があります。これを見てくださいhttp://stackoverflow.com/questions/22436789/xpath-ends-with-does-not-work – NarendraR

関連する問題