学习selenium中,发现有一些网页是嵌套的,即一个html嵌套另一个html,这被称为iframe,selenium只能查找主网页的元素,无法查看嵌套的,进入嵌套的一行代码,首先定位到iframe,然后browser.switch_to.frame(iframe)
iframe示例
from selenium import webdriver
import time
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)
url = 'https://www.88mv.org/vod-play-id-124492-src-1-num-1.html'
browser.get(url)
# browser.switch_to.window(browser.window_handles[-1])time.sleep(2)
button = browser.find_element_by_xpath('/html/body/div[3]/div/div[3]/a')
button.click()
time.sleep(2)
iframe = browser.find_element_by_xpath('//*[@id="playleft"]/iframe[2]')
browser.switch_to.frame(iframe)
time.sleep(2)
b = browser.find_element_by_xpath('/html/body/div[1]')
print(b.get_attribute('id'))
上述代码运行结果为loading
注释掉
iframe = browser.find_element_by_xpath('//*[@id="playleft"]/iframe[2]') browser.switch_to.frame(iframe)后会报错,找不到元素
跳出iframe框架代码:
browser.switch_to.parent_frame()