2017-04-16 1 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 

홍보 루프의 반복마다 페이지의 첫 번째 홈 팀 이름을 나타냅니다.

은이 game 요소뿐만 아니라 페이지 전체를 검색하므로 페이지의 첫 번째 홈 팀 이름을 계속 반환합니다.

목록의 각 항목에서 하위 요소를 검색하려면 어떻게해야합니까?

편집

Here is the exact page I am working on

+0

는 u는 우리에게 사이트를 줄 수 있습니까? – 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)