2016-03-24 4 views
2

私はドロップダウンの値(デフォルト値)に基づいてテーブルにデータをロードするようなhtmlテーブルからデータを取得しようとしています。しかし、ドロップダウンでセレニウムのclick()を実行すると、テーブルの値は変更されますが、取得したデータは古いページのままです。代わりに更新された値を取得するにはどうすればよいですか?ここでは、私が試したコードです。Seleniumを使用してドロップダウンから選択した後、テーブルから更新されたデータを取得するには?

注:私は、たとえばしようとしているURLでもクリック()洞がfind_elements前に...()、私はまだ、元々ロードされたからデータを取得を実行した後、ここで​​

from selenium import webdriver 

browser = webdriver.Firefox() 
browser.get(url)  # you can use the url linked above for example 

if browser.find_element_by_xpath(
'//a[@id = "user-header-oddsformat-expander"]/span').text != 'IN Odds': 
# choose a type of odd that you want from the top dropdown menu 
    browser.find_element_by_xpath(
    '//a[@id = "user-header-oddsformat-expander"]').click() 
    browser.find_element_by_xpath(
    '//ul[@id = "user-header-oddsformat"]/li/a/span[contains(text(), "IN Odds")]').click() 

browser.implicitly_wait(10) 
table = browser.find_elements_by_css_selector('div#odds-data-table') 

for elem in table: 
    print elem.text 

ですテーブルではなく、新しいテーブルです。それ、どうやったら出来るの? text_to_be_present_in_element()を使用して、ドロップダウン値になるように "ではオッズ" の

答えて

2

待ち:

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 


url = "http://www.oddsportal.com/soccer/england/premier-league/aston-villa-chelsea-Ea6xur9j/?r=1#over-under;2" 
browser = webdriver.Firefox() 
browser.implicitly_wait(10) 
wait = WebDriverWait(browser, 10) 

browser.get(url) 

if browser.find_element_by_xpath(
'//a[@id = "user-header-oddsformat-expander"]/span').text != 'IN Odds': 
# choose a type of odd that you want from the top dropdown menu 
    browser.find_element_by_xpath(
    '//a[@id = "user-header-oddsformat-expander"]').click() 
    browser.find_element_by_xpath(
    '//ul[@id = "user-header-oddsformat"]/li/a/span[contains(text(), "IN Odds")]').click() 

    wait.until(EC.text_to_be_present_in_element((By.XPATH, '//a[@id = "user-header-oddsformat-expander"]/span'), "IN Odds")) 


table = browser.find_elements_by_css_selector('div#odds-data-table') 
for elem in table: 
    print(elem.text) 
+0

おかげでバディ。これはトリックでした。乾杯! – sfactor

関連する問題