当前位置 博文首页 > 小白的成长记录:selenium匹配不到元素,容易被忽略的问题,ifra

    小白的成长记录:selenium匹配不到元素,容易被忽略的问题,ifra

    作者:[db:作者] 时间:2021-06-18 21:15

    有可能元素或标签被iframe包裹着

    解决方法

    # 先切换到这个iframe再进行匹配
    browser.switch_to.frame('iframe_id')  # 通过唯一标识匹配ifm
    browser.switch_to.frame(0)  # 通过索引匹配ifm
    
    # 无id和name可以先定位iframe标签,再切换到iframe
    iframe = driver.find_elements_by_tag_name("iframe")[0]
    browser.switch_to.frame(iframe)
    
    # 之后正常匹配就可以了
    browser.find_element_by_id('cardid').send_keys('1234565555555555')
    

    如果是多层嵌套的iframe,切入后再匹配外层页面的元素,或是跳转后的页面不要忘记切回主文档。

    browser.switch_to.default_content()  # 切换回主文档
    browser.switch_to.parent_frame()  # 切到父文档(上层文档)
    

    还有些a标签无法被点击,可以尝试使用以下方法

    # 先匹配所有a标签的关闭按钮
    ifroms = browser.find_elements_by_xpath('//a[@class="panel-tool-close"]')  
    # 关闭所有弹窗
    for ifrom in ifroms:  
    	# 点击a标签按钮进行关闭
        browser.execute_script("arguments[0].click();", ifrom)