嗨,我需要一些帮助来定位一个iframe上的按钮,我认为这是在另一个iframe内。我试了所有我能找到的东西,但没有成功。我不能复制-粘贴整个代码,但已经附上了解释树的截图。
kq4fsx7k1#
请尝试这个:
driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, "iframe.swg-dialog")) driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, "iframe[src*='publicatioId=barpage.com']")) driver.find_element(By.CSS_SELECTOR, div[data-test-id='close-button']).click()
当您使用完iframe中的元素时,不要忘记使用切换回默认内容
driver.switch_to.default_content()
如果您更喜欢使用XPath而不是CSS选择器,则可以很容易地将上面的代码转换为XPath表达式
driver.switch_to.frame(driver.find_element(By.XPATH, "//iframe[contains(@class,'swg-dialog')]")) driver.switch_to.frame(driver.find_element(By.XPATH, "//iframe[contains(@src,'publicatioId=barpage.com')]")) driver.find_element(By.XPATH, //div[@data-test-id='close-button']).click()
您可能需要添加等待,直到元素可用,等等。
xxls0lw82#
试着进入第一个IFRAME,然后进入第二个。试试这个代码
iframe = navegador.find_element_by_xpath("XpathOf1frame") navegador.switch_to.frame(iframe) iframe2 = navegador.find_element_by_xpath("XpathOf2frame") navegador.switch_to.frame(iframe2) navegador.find_element_by_xpath('XpathOfButton').click()
2条答案
按热度按时间kq4fsx7k1#
请尝试这个:
当您使用完iframe中的元素时,不要忘记使用切换回默认内容
如果您更喜欢使用XPath而不是CSS选择器,则可以很容易地将上面的代码转换为XPath表达式
您可能需要添加等待,直到元素可用,等等。
xxls0lw82#
试着进入第一个IFRAME,然后进入第二个。
试试这个代码