2016-11-29 2 views
0

Ich habe eine Webseite, von der ich eine Reihe von Namen aus Webelementen extrahieren muss. Meine Idee ist, zuerst alle diese Elemente mit "findElements (By.xpath .. so etwas wie dieses ",.:Selenium WebDriver - Auswählen von Webelementen mit findElements (By.xpath

List<WebElement> someElements = driver.findElements(By.xpath("XPATH???")); 

Alle diese Elemente haben xPath Muster wie folgt aus:.

/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[1]/div[1]/h2/a 
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[2]/div[1]/h2/a 
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[3]/div[1]/h2/a 
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[4]/div[1]/h2/a 
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[5]/div[1]/h2/a 

wie Sie die einzige Änderung in diesem vorletzten div ist zu sehen, dass ändert meine Frage ist, Wie kann ich diese Codezeile schreiben, um ein Webelement zu füllen? Liste, was geht in By.xPath()?

Vielen Dank im Voraus!

Antwort

0

Ich bin nicht ganz sicher, was Sie hier zu erreichen versuchen.

Wenn Sie wollen, dass alle divs:

List<WebElement> someElements = driver.findElements(By.xpath("/html/body/div[1]/div/div/div/div[1]/div[6]/div[*]/div[1]/h2/a")); 

Wenn nicht bitte mich mit einem Beispiel der tatsächlichen Elemente bieten Sie versuchen, zu erhalten.

+0

Danke Stratos Ion !!! Dies löste es, nur mit * für all diese divs. Es funktioniert jetzt!!! – qsfsamc

+0

Froh, dass es funktioniert, vergessen Sie nicht, es als die richtige Antwort zu markieren :) –

0
List<WebElement> divs = driver.findElements(By.xpath("/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div")) 
0

ändern Codeabschnitt als folgt-

List<WebElement> someElements = driver.findElements(By.xpath("/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div/div[1]/h2/a")); 
+0

Dies wird nur das erste Element, das das OP wollte .. –

+0

können Sie bitte erklären .. –

+0

Sie haben es jetzt behoben ........ Bevor Sie hatten div [1] hardcoded eher als generische div Eintrag –

Verwandte Themen