簡體   English   中英

如何獲得所有 <li> 的 <ul> 使用Java使用Selenium WebDriver?

[英]How to get all the <li> of <ul> with Selenium WebDriver using Java?

我正在嘗試通過以下代碼獲取所有li或ul:

List <WebElement> we = ffDriver.findElement(By.xpath("//*[@id='sf-menu']/li/a/b"));

但是我面臨Add cast to List <WebElements>錯誤Add cast to List <WebElements>添加到webelements時出現錯誤,無法執行的操作。

如何將ul的所有元素分配給List? 在下面的CSS中使用java的硒webdriver

<ul id="sf-menu">

<li class="current">
    <a id="menu_admin_viewAdminModule" class="firstLevelMenu" href="/symfony/web/index.php/admin/viewAdminModule">
        <b>

            Administración

        </b>
    </a>
    <ul></ul>
    <!--

     second level 

    -->
</li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>

您需要findElements()而不是findElement()

List <WebElement> we = ffDriver.findElements(By.xpath("//*[@id='sf-menu']/li/a/b"));

您不能通過findElement(返回WebElement)獲得List。 只有兩種方法適合您

1-喜歡elecxe的建議(推薦)

2-

List<WebElement> we;
we.add(ffDriver.findElements(By.xpath("//*[@id='sf-menu']/li")));
we.add(ffDriver.findElements(By.xpath("//*[@id='sf-menu']/li[2]")));
... 
we.add(ffDriver.findElements(By.xpath("//*[@id='sf-menu']/li[n]")));
WebElement ul_Element = driver.findElement(By.id("sf-menu"));
List<WebElement> li_All = ul_Element.findElements(By.tagName("li"));
System.out.println(li_All.size());
for(int i = 0; i < li_All.size(); i++){
System.out.println(li_All.get(i).getText());
}

//要么

for(WebElement element : li_All){
System.out.println(element.getText());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM