Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在使用Selenium从下拉列表中选择后,如何从表中获取更新的数据?_Python_Selenium_Selenium Webdriver_Web Scraping - Fatal编程技术网

Python 在使用Selenium从下拉列表中选择后,如何从表中获取更新的数据?

Python 在使用Selenium从下拉列表中选择后,如何从表中获取更新的数据?,python,selenium,selenium-webdriver,web-scraping,Python,Selenium,Selenium Webdriver,Web Scraping,我试图从一个html表中获取数据,该表似乎基于dropdown的值(使用默认值)将数据加载到一个表中。但是,当我在下拉列表中单击selenium click()时,表值会改变,但我获得的数据仍然来自旧页面。如何获得更新的值?这是我试过的代码 注意:例如,我正在尝试的URL是 在这里,即使在find_elements…()之前执行了click(),我仍然从最初加载的表中获取数据,而不是从新表中获取数据。如何操作?等待“赔率”作为下拉值,使用: from selenium import webdri

我试图从一个html表中获取数据,该表似乎基于dropdown的值(使用默认值)将数据加载到一个表中。但是,当我在下拉列表中单击selenium click()时,表值会改变,但我获得的数据仍然来自旧页面。如何获得更新的值?这是我试过的代码

注意:例如,我正在尝试的URL是

在这里,即使在find_elements…()之前执行了click(),我仍然从最初加载的表中获取数据,而不是从新表中获取数据。如何操作?

等待“赔率”作为下拉值,使用:

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
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)