硒在

2013-12-20 46 views
0

之間的距離Redbus.in網站

跳過標籤獲得價值就是我想要做的是提取遊記列表並將其存儲在list..but我不能從中得到確切的價值。硒在

<div id="t1-trvDiv" class="trvDiv" style="display: block;"> 
    <ul id="t1-travListing" class="ul-listing"> 
    <li id="t1-travls-0"> 
    <li id="t1-travls-1"> 
     <a title="National Travels" title1="1" onclick="bindTrav("t1",1);"> 
     <span class="tickSelected"></span> 
     National Travels 
     </a> 
    </li> 
    <li id="t1-travls-2"> 
     <a title="Seabird Tourists" title1="2" onclick="bindTrav("t1",2);"> 
     <span class="tickSelected"></span> 
     Seabird Tourists 
     </a> 
    </li> 
    <li id="t1-travls-3"> 
     ... 
    </li> 

這是java代碼,我曾經至少打印第一值..

List<WebElement> allElements = driver.findElements(By.xpath("//ul[@id='t1-travListing']/li")); 
int i=0; 
allElements.remove(allElements.size()-1); 
for (WebElement element: allElements) { 
    System.out.println(driver.findElement(By.xpath("//li[@id='t1-travls-0']/a/")).getText());   
} 

至於有span標記標籤後,我不知道如何跳過這一點,從獲得價值這

+0

你到底要提取?文本? – craastad

+0

我想要做的是從這個頁面我想保存從旅行下拉列表中的所有值到列表http://www.redbus.in/Booking/SelectBus.aspx?fromCityId=123&fromCityName=Chennai&toCityId=462&toCityName=Mumbai&doj=21 -Dec-2013&busType =任何&opId = 0 – Madhan

回答

0

請試試這個。這應該工作。

List<WebElement> allElements = driver.findElements(By.xpath("//ul[@id='t1-travListing']/li")); 
int i=0; 
allElements.remove(allElements.size()-1); // not sure why are you doing this 
for (WebElement element: allElements) { 
    System.out.println(element.findElements(By.xpath("./a")).getText());   
} 
+0

那不行,只返回空值。也getText只可用findElement而不是findElements,我嘗試了以下。這是行得通的。 'int travel = driver.findElements(By.xpath(「// ul [@ id ='t1-travListing']/li」))。size() - 1; (int i = 0; i Madhan

+0

雅它是working.as我使用title屬性來獲取值 – Madhan

0

您可以使用XPath直接選擇您的節點:

//ul[@id = 't1-travListing']/li/a 

與findElements使用它,它會返回一個li-tags內所有a-Tags列表。 硒'的gettext應該讓你顯示的文本,這樣做的本身空跨度標籤的「退出」:

List<WebElement> allElements = driver.findElements(By.xpath("//ul[@id = 't1-travListing']/li/a")); 

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

您也可以嘗試這樣的表達式來選擇沒有的元素,但在他們的文字:

//ul[@id = 't1-travListing']/li/a/text() 
+0

它不工作。返回空值 – Madhan

0

這也將爲你的工作

List<WebElement> allElements = driver.findElements(By.xpath("//*[contains(@id,'t1-travls')]")); 
      for (WebElement element: allElements) { 
       System.out.println(element.getText());   
      } 

List<WebElement> allElements = driver.findElements(By.cssSelector("a[onclick*='bindTrav']")); 
      for (WebElement element: allElements) { 
       System.out.println(element.getAttribute("title"));   
      } 
+0

仍然不工作返回空值只 – Madhan

+0

你可以嘗試第二個選項嗎? –

+0

它的工作可以告訴我什麼* onclick *的含義 – Madhan