2017-03-27 5 views
1

私はHTMLを真剣に勉強したことはないので、おそらく私が言うつもりは正しくない。セレン:回避するElementNotVisibleException例外

私はセレンコードを書いていましたが、一部のウェブページのボタンが他のページにリダイレクトされないことに気付きましたが、最初のボタンの構造が変更されています。私が理解していることから、これを修正するJavaScriptコードがいくつかあるので、これが起こります。

最初のページの読み込みに存在しないデータを取得したいときは、ボタンの正しい順序をクリックするだけです。

ロードしたいページはhttps://watch.nba.com/で、取得したいのは特定の日の一致リストです。

calendary = driver.find_element_by_class_name("calendar-btn") 
calendary.click() 

と、選択した日クリック:最速のパスはそれがcalendaryを開くことです取得するために私が読ん

selenium.common.exceptions.ElementNotVisibleException

:このコードを実行している

page = calendary.find_element_by_xpath("//*[contains(text(), '" + time.strftime("%d") + "')]") 

page.click() 

を、私はこのエラーを取得しますページが正しく読み込まれないか、要素が表示/クリックできないという問題があるので、私はこれを試してみました:

wait = WebDriverWait(driver, 10) 

page = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[contains(text(), '" + time.stfrtime("%d") + "')]"))) 
page.click() 

しかし、今回は、私はこのエラーを取得する:

selenium.common.exceptions.TimeoutException

あなたは、この2つの問題の少なくとも1つを解消するために私を助けることができますか?

+0

まずログインする必要がありますか?私はホームページに "calendar-btn"クラスの要素を見ていません。 – JeffC

+0

いいえ、左上の「カレンダー」ボタンのクラスです。「ログイン」ボタンの下にあります。@JeffC –

答えて

1

このような現象が発生する理由は、カレンダーボタンをクリックするとこのページにiFrames(メインページに15が表示されます)が読み込まれているためです。コンテキストをdefaultContextまたはカレンダーが存在する特定のiframe。 iframeに出入りする方法を示すコードがたくさんあります。お役に立てれば。

+0

私は必要なiframeを見つけようとしていますが、カレンダーを開こうとすると... –

+0

カレンダーを開くと、カレンダーボタンがデフォルトのコンテキストに切り替わります。カレンダーボタンはiframe内にありますが、カレンダービューはデフォルトのコンテキストで読み込まれます –

+0

私は信じられませんが、ワーキング!!!私はこの問題に3時間も費やしてきましたが、ソリューションはたった1行でした。本当にありがとう! –

関連する問題