I'm trying to click a button using Selenium, but everytime I get the message that it can't find the element. This happens even when I put a time.sleep() in front of it.
time.sleep(5)#Click on downloaddownloadButton = driver.find_element_by_css_selector('#downloadButton')time.sleep(5)downloadButton.click()#Click on closecloseButton = driver.find_element_by_xpath('//*[@id="btnZorgAnnuleren"]')closeButton.click()
The button is inside of a frame (not iframe), but I don't know how to switch to it. Here is the frame source code and page source code: https://www.codepile.net/pile/ZoG0REzQ. Can anyone help me out?
If it's iframe :
the I would suggest you to switch to frame like this (with explicit waits):
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "iframe ID")))
Imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
once you have switched you can click like this :
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#downloadButton"))).click()
and click on close :
wait.until(EC.element_to_be_clickable((By.ID, "btnZorgAnnuleren"))).click()
and once you are done, you should switch to default content like this :
driver.switch_to.default_content()