簡體   English   中英

我想提取所有<li>下的元素文本<ul></ul></li>

[英]I want to extract all <li> element text that are under <ul>

我需要單擊所有元素 BASIC、TRACKS、... 我的想法是提取列表中的所有元素,然后使用列表計數和循環,我將單擊每個元素。 即使添加了新元素,也需要檢查每個元素是否正常工作我不想檢查代碼。

<div class="headerarea" style="" xpath="1">
                    <h2>
                        <span id="ctl00_ctl00_phDesktop_lblModuleTitle">Abstract Setup</span>
                    </h2>
                    
                            <ul>
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl01_btnModuleNavigation" class="headerarea_active" href="https://staging.m-anage.com/Modules/Abstract/Setup/basics.aspx">Basic</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl02_btnModuleNavigation" href="https://staging.m-anage.com/testselenium/en-US/Abstract/AbstractSetup/Tracks">Tracks</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl03_btnModuleNavigation" href="https://staging.m-anage.com/Modules/Abstract/Setup/steps.aspx">WIZARD</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl04_btnModuleNavigation" href="https://staging.m-anage.com/Modules/Abstract/Setup/keywords.aspx">KEYWORDS</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl05_btnModuleNavigation" href="https://staging.m-anage.com/Modules/Abstract/Setup/categories.aspx">CATEGORIES</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl06_btnModuleNavigation" href="https://staging.m-anage.com/Modules/Abstract/Setup/conditions.aspx">CONDITIONS</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl07_btnModuleNavigation" href="https://staging.m-anage.com/Modules/Abstract/Setup/interests.aspx">Interests</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl08_btnModuleNavigation" href="https://staging.m-anage.com/Modules/Abstract/Setup/templates.aspx">Templates</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl09_btnModuleNavigation" href="https://staging.m-anage.com/testselenium/en-US/Abstract/AbstractSetup/Index">Submission fee</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl10_btnModuleNavigation" href="https://staging.m-anage.com/testselenium/en-US/Mail/MailServerSetup/Index?pModuleType=Abstract" style="">SMTP Setup</a></li>
                            
                        
                            <li>
                                <a id="ctl00_ctl00_phDesktop_rModuleNavigation_ctl11_btnModuleNavigation" href="https://staging.m-anage.com/testselenium/en-US/Abstract/AbstractSetup/Coauthor">Co-author</a></li>
                            
                        
                            </ul>
                        
                </div>

我嘗試前往兒童路徑但沒有成功

這是我嘗試過的 java 代碼。

    List<WebElement> tags = 
          driver.findElements(By.xpath("//div[@class='headerarea']/ul/li")); 
    for(int i=0;i<tags.size();i++) { 
       while(???) { 
        
     //driver.findElement(By.xpath("//div[@class='headerarea']/ul/li")).click(); 
         }
    }
List<WebElement> tags = driver.findElements(By.cssSelector(".headerarea ul>li")); 
for(WebElement e : tags) {
    e.click();
}

試試下面的代碼:

List<WebElement> links = driver.findElements(By.tagName("li"));
for (int i = 1; i < links.size(); i++)
{
    System.out.println(links.get(i).getText());
}

如果您遇到同步問題,您也可以使用WebDriverWait

 WebDriverWait wait = new WebDriverWait(driver, 10);
 List<WebElement> links = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.tagName(li)));
 for (int i = 1; i < links.size(); i++)
 {
  System.out.println(links.get(i).getText());
 }

暫無
暫無

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

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