Pythonでこれを回避する方法がわかりません。電子メールポップアップは、ポップアップがフッターリンクの表示をブロックするため、Seleniumがフッターリンクの1つをクリックするのを妨げています。理想的には「X」をクリックしてメールを入力したくないです。
プロンプトに関するSeleniumのドキュメントにあるものを使用しようとしましたが、どれも機能しなかったか、おそらく正しく実装していませんでした。コメントアウトされたコードで確認できるスタックオーバーフローですでに見つけたもののいくつかを試しましたが、あらゆる種類のエラーが発生し続けました。
import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup
from urllib.request import urlopen as uReq
from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver
from selenium.webdriver.support import ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
url = "https://www.standardmedia.co.ke/"
driver = webdriver.Chrome()
driver.get(url)
html = driver.page_source.encode('utf-8')
page_num = 0
##options = Firefox_options();
##options.addPreference("dom.disable_beforeunload", true)
##driver = webdriver.Firefox(options);
#click on the headings in the footer
for i in range (0,1):
footer = driver.find_elements_by_css_selector('#top-footer li')[i]
## if(driver.switch_to.alert != null):
## alert = driver.switch_to.alert
## alert.dismiss()
try:
WebDriverWait(driver, 10).until(EC.alert_is_present())
alert = driver.switch_to_alert()
alert.dismiss()
print("Alert dismissed.")
except TimeoutException:
print("No alert.")
footer.click()
print("alert dismissed")
page_num += 1
subheadings = driver.find_elements_by_css_selector('.title a')
len(subheadings)
Firefox Webドライバーの最新のエラーは、「ターゲットマシンがアクティブに拒否したため、接続できませんでした」でした。
WebDriver Alertクラスは、JavaScriptアラートと連携して次のことを行うように設計されています。
このモーダルポップアップをテストしようとしているページは正常です <div>
したがって、Alertクラスを使用することはできません。通常は、find_element()関数を使用して閉じるボタンを見つけてクリックする必要があります。
driver.get("https://www.standardmedia.co.ke/")
popup = WebDriverWait(driver, 10).until(expected_conditions.presence_of_element_located((By.CLASS_NAME, "mc-closeModal")))
popup.click()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加