2013-07-30 51 views
0

對於下面的代碼無法點擊元素的動態列表

<li class="user ui-menu-item" role="presentation"> 
    <a id="ui-id-52" class="ui-corner-all" tabindex="-1"> 
    <em>User:</em> 
     Staff User 
    </a> 
</li> 

這是情景:

有一個文本字段,我在其中輸入名稱Staff,與相關工作人員的值顯示在動態列表框中,在上述情況下,id是動態生成的,當我試圖通過class選擇值時,它對於所有元素都是相同的。

我想要一個xpath表達式來選擇列表中的第一個可用選項。我嘗試了很多方式,比如包含和開始,但沒用。請讓我知道你的寶貴建議。

在此先感謝 溼婆神。

+0

與上文爲您輸入後生成的列表中的HTML 「工作人員」進入文本字段? –

+0

@Alex是的以上是HTML –

+0

下面的答案是否幫助你? –

回答

0

我認爲這應該工作

WebElement ele = webdriver.findElement(By.Xpath("//li[@class='user ui-menu-item'][1]")) 
+0

感謝您的幫助,這工作正常......非常感謝... –

0

您是否嘗試過形成List,然後直接使用該List的第一個元素?

List<WebElement> list = driver.findElements(By.xpath("//li[@class(contains, 'user')]"; 
list[0].getText(); 

我仍然不是百分之一百確定一旦你找到它,但是你想用元素做什麼。建立List可能會更好,然後遍歷該列表並根據element執行所需的任何操作。

0

使用XPath。它應該工作

//李[@Role = '介紹' //一個[1]