首页 > 解决方案 > 如何从 iFrame 索引切换回相对父级?

问题描述

如何在(Python)中从 iFrame 索引切换回相对父级?我使用此代码但不适用于我:

def type_order_credit_card1_number(self, credit_card_1_number):
    WebDriverWait(self.driver, 80).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//iframe[1]')))
    WebDriverWait(self.driver, 80).until(EC.element_to_be_clickable((By.XPATH, self.order_credit_card_number_text_id))).send_keys(credit_card_1_number)

    time.sleep(4)

def type_order_credit_card_expiry_date(self, credit_card_1_expiry_date):
    WebDriverWait(self.driver, 80).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//iframe[2]')))
    WebDriverWait(self.driver, 80).until(
        EC.element_to_be_clickable((By.XPATH, self.order_credit_card_expiry_date_text_id))).send_keys(
        credit_card_1_expiry_date)

我想从 [selectFrame index=2] 切换到 [selectFrame relative=parent] 以输入信用卡到期日期和 cvv(卡号可以正常工作)

标签: pythonseleniumselenium-webdriverpyhook

解决方案


要从孩子切换回<iframe>直接父母<iframe>,您需要使用以下switch_to()语句:

driver.switch_to.parent_frame()

要从任何孩子或孙子切换回<iframe>顶层,即您需要使用的默认内容:

driver.switch_to.default_content()

参考

您可以在以下位置找到一些相关的讨论:


推荐阅读