python selenium选择iframe(暴力破解)

通过遍历的方式 暴力识别iframe 

ps:需要自己定义driver,log

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


def iframe( loc):
    """
    识别iframe中包含的元素  来确定对应的iframe
    作用于无固定属性值的iframe
    :loc:iframe中存在的元素
    :return:
    """
    try:
        i = 0
        while i < 10:
            driver.switch_to.frame(int(i))
            i = i + 1
            # 判断元素是否存在   存在输出true  不存在输出false
            try:
                WebDriverWait(driver, 5, 1).until(EC.visibility_of_all_elements_located(loc))
                b = True
            except:
                b = False
            # 元素存在就退出循环  元素不存在就退出当前iframe
            if b:
                log.info(f"选择第{i}个iframe")
                break
            else:
                driver.switch_to.default_content()  # 退出当前iframe
    except Exception as e:
        print(e)

def iframe2( loc):
    """
    识别iframe中包含的元素  来确定对应的iframe        ai优化
    作用于无固定属性值的iframe
    :loc:iframe中存在的元素
    :return:
    """
    for i in range(10):
        try:
            driver.switch_to.frame(i)  # 选择iframe
            WebDriverWait(driver, 5, 1).until(EC.visibility_of_all_elements_located(loc))  # 判断元素是否存在
            log.info(f"选择第{i}个iframe")
            break
        except:
            driver.switch_to.default_content()  # 退出当前iframe
    else:
        print('无法找到对应的iframe')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值