我想登錄一個論壇,已經通過切換到 iframe 繞過了 cookie 訊息,但我無法訪問頁面上的任何內容。這是我的代碼:
#set path, open firefox
path = r'C:\Users\Anwender\Downloads\geckodriver-v0.30.0-win64\geckodriver.exe'
driver = webdriver.Firefox(executable_path=path)
#open bym forum
driver.get('https://www.bym.de/forum/')
driver.maximize_window()
#deal with cookie
wait = WebDriverWait(driver,20)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[title='SP Consent Message']")))
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"button[title='Zustimmen']"))).click()
driver.implicitly_wait(30)
到現在為止還挺好。現在彈出了大量的廣告。我嘗試登錄:
username = driver.find_element_by_id('navbar_username')
username.send_keys("name")
password = driver.find_element_by_id('navbar_password')
password.send_keys("pw")
driver.find_element_by_xpath("/html/body/div[1]/div[2]/main/div[3]/div[1]/ul/li[2]/form/fieldset/div/div/input[4]").click()
我已經使用 css 選擇器或 xpath 嘗試了不同的變體。沒用。然后我嘗試等待 20 秒,直到所有內容都加載完畢。沒用。我嘗試訪問不同的元素(到子論壇)。沒用。我試過:
try:
wait.until(
EC.presence_of_element_located((By.ID, "navbar_username"))
)
finally:
driver.quit()
Selenium 就是找不到這個元素,瀏覽器就關閉了。我一直在尋找 iframe,但在 html 中找不到任何 iframe。我什至不在主“視窗”上有可能嗎?“框架”?“地點”?我不知道該怎么稱呼它。
任何幫助將非常感激!
uj5u.com熱心網友回復:
您切換到 iframe 并關閉它,但您從未切換回來!Selenium 仍然在關閉且不存在的 iframe 上。使用以下命令切換回主頁:
driver.switch_to.default_content()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/372869.html
上一篇:型別'Observable<ArrayBuffer>'不可分配給型別'Observable<HttpResponse<User>>
