2017-12-18 17 views
5

Pythonでスクリプトを記述して、Webページからいくつかの項目を解析しました。私はとにかくそれを働かせることはできません。後のアイテムは、おそらくiframe以内です。私はそれを切り替えようとしましたが、それは何の効果もありません。私はまだTimeoutExceptionを除いて何も得ていません。私がiframeを切り替えようとした行に当たったときです。どのように私はそれを働かせることができます。事前に感謝します:ここでWebページからいくつかの項目を取得する際に問題が発生しました

は、Webページのリンクを行く:URL

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 = "replace_with_above_url" 

driver = webdriver.Chrome() 
driver.get(url) 
wait = WebDriverWait(driver, 10) 

wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "tradingview_fe623"))) 

for item in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".quick .apply-common-tooltip"))): 
    print(item.text) 

driver.quit() 

要素をその中のアイテム私が後だ:

<div class="quick"> 
    <span class="apply-common-tooltip">5</span> 
    <span class="apply-common-tooltip">1h</span> 
    <span class="apply-common-tooltip selected">1D</span> 
    <span class="apply-common-tooltip">1M</span> 
    <span class="apply-common-tooltip">1D</span> 
</div> 

これは私が持っている期待していた出力が(あります私はCSSセレクタを使用してそれらを取得しようとするとローカルに動作します):

5 
1h 
1D 
1M 
1D 

2つのネストされたのiframe内に位置し

enter image description here

答えて

4

必要なノード、あなたは彼らに一つ一つを切り替える必要があります:それはウェブでどのように見えるかです。第2のもののid/nameが動的に生成されることに注意してください。ちょうどあなたがちょうど不可能先生アンダーソンです

wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, ".abs"))) 
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe[id^='tradingview_']"))) 
+0

wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "tradingview_fe623"))) 

を交換してみてください。うん、あなたはそれを作った。 – SIM

関連する問題