2017-09-13 287 views
1

这可能是一个问题的两个部分所以请原谅我,如果这不是写得很好:Python Selenium - 你如何点击网页表格的每一行元素?

我试图让我的webdriver去NBA球队统计页面:http://stats.nba.com/teams/traditional/#!?sort=W_PCT&dir=-1

Table Image for Reference

,然后点击表格中的链接FGM编号。这应该在后台打开一个新选项卡。到目前为止,我完全失去了我应该如何接近这一点。

我在想:

  • 我需要一种方法来计算行数
  • 然后,我需要的webdriver的告诉 循环/点击通过在该行的FGM列元素数

我敢肯定,我可以用BeautifulSoup得到的数据,但我想用硒实践和与表/链接,长度可以变化工作。任何线索都表示赞赏。谢谢!

回答

0

Python的例子:

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

所以这看起来像是持续下去的前五个项目的团队柱,有时弹出窗口侧面菜单。你从哪里得到'第一'?这绝对是正确的轨道,但我只是想了解如何指定表中的列。谢谢! – Saul

+0

Saul,这是我使用的课程​​。我认为你只需要调整以使用你特别需要的元素。 – user3277225

+0

好吧,所以我试图做到这一点,我只是无法弄清楚。出于某种原因......它总是在创建的新选项卡中重复链接。例如,我有一个两个元素的列表,并使用ActionChains单击它们。打开第三个选项卡,第一个元素被点击两次。您是否有任何见解? – Saul

相关问题