2017-04-16 157 views
0

我在抓取一个包含使用JavaScript生成的足球游戏列表的网站。我写了创建网页上的所有游戏元素的列表下面一行:使用Selenium Webdriver在元素中查找元素

list = browser.find_elements_by_xpath('//*[@data-sportid="1"]') 

如果我接着写

for game in list: 
    print game.text 

它打印所有包含在每个游戏的文本字段(主队名,客队名称等)

然而,循环

for game in list: 
    print game.find_element_by_xpath('//*[@class="home-team"]').text 

PR在循环的每次迭代中,在页面中列出了首个主队的名字。

看来,game.find_element_by_xpath正在搜索整个页面,而不仅仅是这个game元素,因此它不断返回页面上的第一个主队名称。

如何搜索列表中每个项目内的子元素?

编辑

Here is the exact page I am working on

+0

ü可以给我们的网站?\ – nooby

+0

@nooby加入它的问题 – KOB

回答

1
driver = webdriver.Chrome() 
driver.get("https://www.betfair.com/exchange/football/coupon?id=2") 
list = driver.find_elements_by_xpath('//*[@data-sportid="1"]') 
for game in list: 
    print(game.find_element_by_css_selector('span.home-team').text) 

driver = webdriver.Chrome() 
driver.get("https://www.betfair.com/exchange/football/coupon?id=2") 
list = driver.find_elements_by_xpath('//*[@data-sportid="1"]') 
for game in list: 
    print(game.find_element_by_xpath('.//span[@class="home-team"]').text) 
相关问题