slenium对iframe的处理即动作链

有 时 候 , 网 页 上 的 某 些 标 签 是 用 一 对 i f r a m e 包 裹 起 来 的 有时候,网页上的某些标签是用一对iframe包裹起来的 ,iframe

这 个 时 候 i f r a m e 的 元 素 就 不 会 被 s l e n i u m 检 查 到 这个时候iframe的元素就不会被slenium检查到 iframeslenium

需 要 先 切 换 到 对 应 的 i f r a m e 里 面 需要先切换到对应的iframe里面 iframe

比 如 这 个 网 页 \color{Red}比如这个网页 点我点我吖

slenium对iframe的处理即动作链_第1张图片

我 们 想 点 击 这 个 s w i c h   t o   E n g l i s h   V e r s i o n 切 换 到 英 文 \color{Red}我们想点击这个swich\ to\ English\ Version切换到英文 swich to English Version

这 个 时 候 就 要 切 换 i f r a m e 进 去 这个时候就要切换iframe进去 iframe

from selenium import webdriver

b = webdriver.Chrome('C:\\Users\\陈大仙帅锅\\Desktop\\chromedriver.exe')
b.get('https://zmt.wiki/yq/')
iframe = b.find_element_by_xpath('/html/body/iframe')
b.switch_to.frame(iframe)
x = b.find_element_by_xpath('//*[@id="root"]/div/div[1]/a')
x.click()

下 面 是 动 作 链 实 现 拖 动 操 作 下面是动作链实现拖动操作

练习网址点我呀

import time
from selenium import webdriver
from selenium.webdriver import ActionChains

b = webdriver.Chrome('C:\\Users\\陈大仙帅锅\\Desktop\\chromedriver.exe')
b.get('https://www.mdui.org/docs/slider/demo1')
b.switch_to.frame('preview-iframe')
div = b.find_element_by_xpath('/html/body/div/label/input')
#动作链
action = ActionChains(b)
action.click_and_hold(div)
for i in range(5):
    action.move_by_offset(17,0).perform()
    time.sleep(0.5)
action.release()

你可能感兴趣的:(python爬虫)