当前位置 博文首页 > 小白的成长记录:selenium匹配不到元素,容易被忽略的问题,ifra
解决方法
# 先切换到这个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)