を消えた後、私は私が1〜2日間解決しようとしてきた当面の問題のいくつかの考えを申し上げ応答を停止します。セレンFireFoxのドライバーは、ポップアップが
私は、Firefox 49.0.1上のセレン2.53.6でPythonスクリプトを実行しています。スクリプトは、ページ上の一連のドキュメントダウンロードリンクをクリックすることになっています(私は、これらのファイルタイプを開くのではなく、自動的にダウンロードするようにブラウザを設定しています)。クリックすると、次の2つのイベントのいずれかが展開されます。
- ポップアップウィンドウが表示されます。ドキュメントをダウンロードする前に、ポップアップウィンドウのボタンをクリックして閉じる必要があります。
- ドキュメントのダウンロードが開始されたとき、それは自分自身で消える前に空白のポップアップが一瞬表示されます。
file_link = tr.find_element_by_xpath('td[5]/a') file_link.click() time.sleep(7) # Allows the blank pop-up to disappear automatically under Event2 agree_button = None # Checks for the pop-up window try: print "Step 1" driver.switch_to.window(driver.window_handles[1]) print "Step 2" # SCRIPT STOPS RUNNING HERE agree_button = driver.find_element_by_xpath('//input[@value="Agree and proceed"]') print "Popup found" except: driver.switch_to.window(driver.window_handles[0]) # Clicks the button if the pop-up window is found if agree_button is not None: agree_button.click() print "Button clicked"
通常の状況下では、イベント2のネットワークで長い待ち時間があるのですトラブル表面を、空白ポップ:ここ
は、上記のイベントを処理するために書かれたスクリプトの抜粋ですほぼ即座に消えてダウンロードがすぐに始まります。ただし、ネットワークが遅い場合、空白のポップアップは割り当てられた7秒を超えて持続し、その結果、ポップアップウィンドウが消える前にスクリプトが「ステップ2」に実行されます。
不思議なことは、この時点でスクリプトがagree_button
を探すために続行されません。そうであれば、例外が発生し、元のウィンドウに戻ってステップを再開することができます。スクリプトは単に停止し、それは何も表示されません。お時間の人たちのために事前に
ありがとう!
は、ポップアップのagree_buttonですか? – Raza