2017-05-31 37 views
1

Seleniumのポップアップボックスを閉じることができません。以下は私が書いたコードですが、例外を返します。以下のコードをご覧ください。Seleniumでポップアップボックスを閉じることができません

driver = webdriver.Chrome() 
driver.get("https://www.google.com/webhp#q=home+depot+san+francisco&lrd=0x808f7c5c63124c7b:0x32c19e9988b2aa90,1,") 
driver.find_element_by_xpath('//div[@class="_wzh"]').click() 
# selenium.common.exceptions.ElementNotVisibleException: Message: element not visible 

おかげで、代わりに要素をクリックしようとしているの

答えて

0

は、あなたは組み込みのサポートを使用する必要があります。 次の作業が必要です。

alert = driver.switch_to_alert() 
alert.accept 

Docs

+1

良い答え。しかし、私はOPがブラウザアラートを閉じようとしているのではなく、同じことをシミュレートする「モーダルダイアログボックス」のためにダウンボートがあったと思います。 –

+0

@JohnMee - ありがとう!私は実際のページを見なかった。質問に私の答えに基づいています。 – Amit

0

要素はタグ上に存在するからです。その最初のあなたはIFRAMEに切り替え、その後、要素と対話する必要があります。

driver.switch_to.frame driver.find_element_by_css(' #gsr > iframe') 

その要素をクリックしてください:

driver.find_element_by_xpath('//div[@class="_wzh"]').click() 
1

それはあなたのポップアップを開くには多少時間がかかります。したがって、ポップアップが開き、閉じるボタンが表示されるまで数秒間待つ必要があります。以下のような要素の可視性まで

ユーザーExplicitwait条件:

element = WebDriverWait(driver, 60).until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, "div>._wzh")) 
) 
element.click() 
関連する問題