2016-07-25 9 views
0

ポップアップオーバーレイの処理後、残りのコードは機能しなくなりました。私はその点の作品の後にコードのポップアップどれを閉じていない場合Selenium with Python - ポップアップオーバーレイ後のメインコンテンツへの切り替え

from selenium import webdriver 
browser = webdriver.Firefox() 

browser.get('https://www.vapordna.com/login.asp') 

#handling popup 

browser.find_element_by_css_selector("div.age-verify-button.age-modal__btn.btn.btn-primary").click() 
browser.find_element_by_link_text("Yes").click() 

私は、コードの残りの部分をポップをクローズアップしていない場合は、動作します。ポップアップが新しいインラインフレームまたはウィンドウではありませんので、私は、なぜそこだろうかわからない私の理解のため、

browser.switchTo().defaultContent(); 

を、私はこの行を追加しようとしているが、それは解決しない

emailElem = browser.find_element_by_name("email") 
emailElem.send_keys("****@****.com") 
passwordElem = browser.find_element_by_name("password") 
passwordElem.send_keys("******") 
passwordElem.submit() 

ページとのやりとりを続けることに何らかの問題があります。ここbrowser.switchTo().defaultContent();を使用する必要はありませんので、

私はまた、あなたのウェブサイトを見た後、私はこれを遵守

browser.find_element_by_tag_name("body").click() 
+0

「ページとやり取りできなくなった」とはどういう意味ですか? –

+0

ログインフォームに記入すると何も起こりません。ポップアップを閉じずにコードを実行すると、まずログインします。後で私はそれを閉じる必要があるので – user99137

+0

私は答えを与え、私に知らせてください.. –

答えて

0

を続行する前に身体をクリックしようとしたが、フレームやウィンドウ、私だけの形でもありませんどのフレームからデフォルトへの切り替えに実際に使用していますか?実際には、開いているポップアップですべてのページをオーバーレイするこのボタンを見つけようとすると、ページにフルロードされないので、WebDriverWaitを使用してこのボタンがページに表示されます。

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 

browser = webdriver.Firefox() 
browser.get('https://www.vapordna.com/login.asp') 

wait = WebDriverWait(driver, 10) 

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.age-verify-button.age-modal__btn.btn.btn-primary"))).click() 

この契約ボタンをクリックした後、ログインするための手順を続行できます。

+0

残念なことに、それは動作しません。私のコードは、ポップアップを閉じて成功した、私は質問を編集して少し明確にしました。 – user99137

関連する問題