Ciao, sto cercando di individuare più elementi con lo stesso className. Il className e la struttura del corpo degli elementi sono gli stessi, ma i testi, i collegamenti e le immagini sono diversi.Selenium: individuazione di più elementi con lo stesso nome di classe
<div class="dc-content-right clearfix"> (parent)
<div class="dc-item clearfix"> (child nodes)
<div class="dc-item clearfix">
<div class="dc-item clearfix">
Ognuno di questi elementi bambino sembra qualcosa di simile:
<div class="dc-item clearfix">
<div class="dc-icon">
<div class="dc-info">
<h2>
<a href="http://www.avg.com/ww-en/free-antivirus-download">AVG AntiVirusFree 2015</a>
</h2>
Ogni elemento bambino ha testo diverso nel tag H2. Quindi, una volta che AVG AntiVirus è stato rilasciato nel 2015, allora è Internet Security .... e così via. Quindi quello che voglio fare è salvare tutti gli elementi in una lista e poi lavorare con loro. All'inizio ho salvare questi elementi intto una lista di WebElements:
List <"WebElement"> list = driver.findElements(By.xpath("//div[@class='dc-item clearfix']"));
Poi voglio scorrere la lista e scrivere il testo h2 per ogni elemento sullo schermo:
for(WebElement i:superDiv)
{
System.out.println(i.findElement(By.xpath("//h2/a")).getText());
}
Così il risultato dovrebbe essere un elenco di 3 titoli diversi estratti da divs
. Il problema : il risultato è l'elenco di 3 titoli che sono lo stesso!
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
AVG AntiVirus Free 2015
Sembra che abbia localizzato lo stesso elemento 3 volte. Qualcuno ha un'idea di quale potrebbe essere il problema? Grazie
Grazie, che scriverà tutto il testo si può trovare in un elemento figlio, (collegamenti, descrizioni, intestazione ...) vorrei piace accedere solo al tag h2. – Zawe
ya, ho letto male la domanda. Ho aggiornato xpath da allora, funziona quello nuovo? – Cathal
Sì, funziona. Grazie. Ma l'intero punto era .. è possibile prima salvare l'intero elemento figlio. Elenco <"WebElement"> list = driver.findElements (By.xpath ("// div [@ class = 'dc-item clearfix']")); e poi accedere alle diverse parti di esso. Qualcosa come list.get (1) .findElement (By.xpath ("// h2/a")). GetText(). Sai che qualcosa del genere è persino possibile? – Zawe