セレンで外貨USD/CADの価格履歴データをダウンロードする自動スクリプトを作成しようとしていました。 :これらのデータは、このようになります、セレンの要素が期待どおりに動作しない
https://www.dukascopy.com/swiss/english/marketwatch/historical/
で、私は手動で「ティック」ボタンを選択した後、1時間と燭台オプションを選択しダウンロードすると「時間」を選択したいデータをご利用いただけます
そして提供側面積がクリック可能になります。私はセレンと、このプロセスを自動化した場合、コードは次のようになります。
driver = webdriver.Firefox()
driver.get("https://www.dukascopy.com/swiss/english/marketwatch/historical/")
# wait for the frame to load and switch
wait = WebDriverWait(driver, 20)
iframe = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".mainContentBody iframe")))
driver.switch_to.frame(iframe)
for pair in ["USDCAD"]:
css_selector = "ul > li[data-group][data-instrument='{}/{}']".format(pair[:3], pair[3:])
li_item = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, css_selector)))
li_item.click()
# Set the two options about candlestick
candle_unit_menu_ele = driver.find_element_by_id(":i")
candle_unit_menu_ele.click()
candle_unit_ele = wait.until(EC.visibility_of_element_located((By.ID, ":3"))
candle_unit_ele.click()
ただし、このスクリプトを実行した後、あなたはUSD/CADのボタンがありますキャンドルユニットが時間に設定されていない一方で、選択、またしていますオファー側セクションが利用可能になります。画像:
これが起こって、どのように期待される成果を持っている理由私は疑問に思って。
ありがとうございます!
ユニットはに何を設定しない:
をして上にあなたのコードを置き換えますか? –
時間に設定する必要があります@YuZhang –
あなたはどのバージョンのSeleniumとFirefoxを使用していますか?私はFirefox 45.2とSelenium 2.52です。私はあなたのコードを実行したときに動作します。 – aneroid