2012-09-20 95 views
2

我正在使用Selenium IDE進行一些測試,並嘗試使用它從自動完成中選擇指定的選項。我的問題是,自動完成內置<ul>和兩個<li>可能是相同的。如何點擊指定的li?如何對Selenium說「點擊第一個li」或「點擊li」文字「蘋果?我嘗試了一些我發現的方法,但都是針對其他類型的Selenium,在Selenium IDE中沒有任何用處。 !如何使用Selenium IDE爲指定的li單擊自動完成ul?

在此先感謝和抱歉,我的英語不好

下面是代碼:

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1003; top: 360.683px; left: 549.5px; display: block; width: 401px;"> 
    <li class="ac_item ui-menu-item" role="menuitem"> 
    <a class="clearfix ui-corner-all" tabindex="-1"> 
     <span class="c1"> 
     <b>Apple</b> 
     <br> 
     <span class="small secondary">Apples</span> 
     </span> 
     </span> 
    </a> 
    </li> 
    <li class="ac_item ui-menu-item" role="menuitem"> 
    <a class="clearfix ui-corner-all" tabindex="-1"> 
     <span class="c1"> 
     <b>Orange</b> 
     <br> 
     <span class="small secondary">Oranges</span> 
     </span> 
    </span> 
    </a> 
    </li> 
</ul> 

回答

3

硒API爲您提供了多種方式來實現這一點既然你沒有。傳統的下拉菜單中,您不能使用select命令。下面是兩個解決方案,它們是點擊autocom中的第二個元素plete。

我創建了這個JSFiddle來測試解決方案。被點擊的元素會變成紅色。

選項1:使用CSS定位器。

| Command    | Target            | 
| open     | http://jsfiddle.net/ansonhoyt/GYJW9/embedded/result/ | 
| waitForElementPresent | css=ul.ui-autocomplete        | 
| click     | css=ul.ui-autocomplete li.ui-menu-item:nth-child(2) | 

注:運行速度快,而且大多數人都熟悉CSS,但這個例子需要有針對性的瀏覽器支持CSS3第n個孩子選擇。

選項2:使用XPath定位器。

| Command    | Target            | 
| open     | http://jsfiddle.net/ansonhoyt/GYJW9/embedded/result/ | 
| waitForElementPresent | css=ul.ui-autocomplete        | 
| click     | //ul[contains(@class,'ui-autocomplete')]/li[2]  | 

注:XPath的是對大多數人不太熟悉,並與CSS定位器,特別是在IE中可能會很慢。

有關更多建議,請查看Selenium IDE的文檔locating elements和可用的Selenese commands

+0

謝謝!我現在使用Selenium webdriver。好多了。 – Morton

相關問題