2017-04-16 155 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) 
相關問題