2017-09-13 1 views
1

Dies kann eine zweiteilige Frage mich so vergeben werden, wenn dies geschrieben ist nicht gut:Python Selenium - Wie klicken Sie auf jedes Zeilenelement für die Spalte der Web-Tabelle?

Ich versuche, meine WebDriver zu bekommen, um die nba Teamstatistik Seite zu gehen: http://stats.nba.com/teams/traditional/#!?sort=W_PCT&dir=-1

Table Image for Reference

und klicken Sie dann auf die verknüpften FGM-Nummern in der Tabelle. Dies sollte eine neue Registerkarte im Hintergrund öffnen. Bis jetzt bin ich völlig verloren, wie ich mich dem nähern sollte.

Ich denke:

  • Ich brauche einen Weg, um die Reihen zu zählen
  • Dann muss ich die WebDriver zu Schleife sagen/klicken Sie sich durch Elemente in der FGM Spalte für die Zeilenanzahl

Ich bin sicher, dass ich die Daten mit BeautifulSoup bekommen kann, aber ich versuche, mit Selenium zu trainieren und mit Tabellen/Links zu arbeiten, die in der Länge variieren können. Alle Leads werden geschätzt. Vielen Dank!

Antwort

0

Python Beispiel:

from selenium import webdriver 
from selenium.webdriver import ActionChains 
web_driver = webdriver.Firefox() 

web_driver.get("http://stats.nba.com/teams/traditional/#!?sort=W_PCT&dir=-1") 

actions = ActionChains(driver) 
team_links = webdriver.find_elements_by_xpath("//body//td[contains(@class, 'first')]/a") 

for link in team_links: 
    actions.key_down(Keys.CONTROL).click(link).key_up(Keys.CONTROL).perform() 
+0

So sieht es wie es die ersten fünf Punkte auf der Team-Säule kontinuierlich und manchmal Pop-ups auf das seitliche Menü going down ist. Woher hast du "zuerst"? Das ist definitiv auf dem richtigen Weg, aber ich möchte nur verstehen, wie man die Spalte in der Tabelle spezifiziert. Vielen Dank! – Saul

+0

Saul, Es ist die Klasse, die ich verwendet habe. Ich denke, du musst nur tunen, um die Elemente zu verwenden, die du wirklich brauchst. – user3277225

+0

Okay, ich habe es versucht und ich kann es nicht herausfinden. Aus irgendeinem Grund ... wiederholt es immer den Link in den neu erstellten Tabs. Zum Beispiel habe ich eine Liste von zwei Elementen und benutze die ActionChains, um darauf zu klicken. DREI Tabs werden geöffnet, wo das erste Element zweimal geklickt wird. Hast du irgendwelche Einsichten? – Saul

Verwandte Themen