2013-04-15 58 views
1

我正在與Selenium IDE一起使用Firefox執行一些測試案例記錄和自動化。在我目前的測試案例中,我需要點擊一個特定的菜單項。此菜單項具有動態生成的ID,因此我無法可靠地使用它來識別菜單項。Selenium IDE:如何檢測具有動態ID的菜單項

下面是HTML代碼的摘錄,我與(試圖保持它短,因爲它是相當大的)工作:

<div class="mmenu-column last-child"> 
    <ul> 
     <li id="liemx1271284633044.5005" class="submenu" menuuid="emx1271284633044.5005"> 
     <ul> 
      <li id="liemx573969930099.0066" class="link" menuuid="emx573969930099.0066"> 
      <li id="liemx72897755668.1767" class="link" menuuid="emx72897755668.1767"> 
      <li id="liemx1355170643142.7795" class="link" menuuid="emx1355170643142.7795"> 
       <span class="icon"> 
       <span>Create Drawing Print...</span> 
      </li> 
      <li id="liemx1032692905053.1085" class="link" menuuid="emx1032692905053.1085"> 
     </ul> 
     <li id="liemx625746376608.6172" class="submenu" menuuid="emx625746376608.6172"> 
     <ul> 
     <li id="liemx696193179020.1482" class="submenu" menuuid="emx696193179020.1482"> 
     <ul> 
    </ul> 
</div>` 

我試圖讓「創建圖紙打印... 「元素。我用Firebug的,得到了​​以下XPath:

html/body/div[20]/div/div/div/div/div[2]/ul/ul[1]/li[3]/span[2] 

和它的作品,但它是高度依賴於瀏覽器的寬度和高度(改變寬度或高度引起菜單崩潰,從而改變了其組成菜單項目的位置)。我需要幫助才能找到一個很好的方法來獲取特定的菜單項元素(XPath或其他)以用於我的Selenium測試用例。

謝謝!

回答

0

我想嘗試XPath表達式所示:

//span[text() = 'Create Drawing Print...'] 
+0

是的,這正是我一直在尋找的!非常感謝你! :) – XenoAce

0

與此CSS選擇嘗試

driver.findElement(By.cssSelector(「利[ID * = 'liemx']>跨度。圖標+ span「))。任何操作。

請讓我知道上面的CSS是否正在工作。