2016-06-08 8 views
0

Ich habe folgenden HTML-Code.Wie Sie den Text zwischen HTML-Tags verwenden, um auf ein Element zuzugreifen - Selenium WebDriver

<span class="ng-binding" ng-bind="::result.display">All Sector ETFs</span> 

<span class="ng-binding" ng-bind="::result.display">China Macro Assets</span> 

<span class="ng-binding" ng-bind="::result.display">Consumer Discretionary (XLY)</span> 

<span class="ng-binding" ng-bind="::result.display">Consumer Staples (XLP)</span> 

Wie man sehen kann, sind die Tags für jede Zeile mit Ausnahme des Textes zwischen den Tags alle gleich. Wie kann ich auf jede der obigen Zeilen separat zugreifen, basierend auf dem Text zwischen den Tags.

+0

u kann den übergeordneten HTML-Quellcode in dem diese span-Tags –

Antwort

2

verwenden die unten als XPath

//span[text()='All Sector ETFs'] 
1

Sie können XPath-Funktion text() dafür. Zum Beispiel

//span[text()="All Sector ETFs"] 

ersten Wegstück

1

finden Sie xPath folgende verwenden können

String text = 'Your text'; 
//text may be ==>All Sector ETFs, China Macro Assets, Consumer Discretionary (XLY), Consumer Staples (XLP) 
String xPath = "//*[contains(text(),'"+text+"')]"; 

Durch diesen auf textbasierte gewünschtes Element finden Sie jeweils Elemente finden ..

Hoffe, es wird dir helfen .. :)

+0

der Text Eigentlich liegen hinterlassen kann alles sein. Sie verwenden contains, so lange es einem Teil eines Elementtextes entspricht, wird es etwas finden. – RemcoW

0

Hallo bitte tun Sie es wie Belo w

Way One

public static void main(String[] args) { 
WebDriver driver = new FirefoxDriver(); 

List<WebElement> mySpanTags = driver.findElements(By.xpath("ur xpath")); 
System.out.println("Count the number of total tags : " + mySpanTags.size()); 
    // print the value of the tags one by one 
    // or do whatever you want to do with a specific tag 

for(int i=0;i<mySpanTags.size();i++){ 
System.out.println("Value in the tag is : " + mySpanTags.get(i).getText()); 
// either perform next operation inside this for loop 
if(mySpanTags.get(i).getText().equals("Consumer Staples (XLP)")){ 
    // perform your operation here 
    mySpanTags.get(i).click(); // clicks on the span tag 
     } 
    } 

    // or perform next operations on span tag here outside the for loop 
    // in this case use index for a specific tag (e.g below) 
    mySpanTags.get(3).click(); // clicks on the 4 th span tag 

} 

Way Zwei

den Tag findet direkt //span[text()='Consumer Staples (XLP)']

Verwandte Themen