Skip to content Skip to sidebar Skip to footer

Error Switching To Iframe Selenium Python

Currently I'm attempting to switch to iframe/fancybox, but i'm getting the following error: line 237, in check_response raise exception_class (message, screen, stacktrace) selenium

Solution 1:

The id and name attributes looks dynamic (the number doesn't match in the code and html). You can try to locate by partial id/name

_iframe_ = {"by": By.CSS_SELECTOR, "value": "[id*='fancybox-frame']"}
# "[name*='fancybox-frame']"

As a side note, frame() can receive id/name as parameter

self.driver.switch_to.frame('fancybox-frame1518441842751')

Would have worked (except for the dynamic issue of course).


Solution 2:

To identify the <iframe> properly you have to change the Locator Strategy as follows :

_iframe_ = {"by": By.XPATH, "value": "//iframe[@class='fancybox-iframe' and starts-with(@id,'fancybox-frame') and contains(@src,'/reminder/add/relation/')]"}

 def __init__(self, driver):
    super(BasePage, self).__init__()
    self.driver = driver
    WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((self._iframe_)))

Post a Comment for "Error Switching To Iframe Selenium Python"