iframe切换
关于本文中用到的webdriver驱动实例化一个浏览器对象看这篇文章
这里>>>>>>点击这里
- 如果要定位的标签位于iframe当中,那么通过switch_to.frame(xxxxx)切换frame
- 导入动作链库: from selenium.webdriver import ActionChains
- 实例化一个动作链对象:ActionChains(browser) 参数是浏览器对象
- 点击并长按操作:click_and_hold(div)
- 拖动:move_by_offset(17, 1).perform()
- 释放动作链对象:.release()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020/9/25 10:56
# @Author : Hou Yunxi
# @File : iframe_test.py
# @Software: PyCharm
from selenium import webdriver
from time import sleep
# 导入动作链
from selenium.webdriver import ActionChains
browser = webdriver.Chrome('./chromedriver.exe')
browser.get('https://www.runoob.com/try/try-cdnjs.php?filename=jqueryui-api-droppable')
# 如果要定位的标签位于iframe当中,那么通过如下操作才能正确定位
browser.switch_to.frame('iframeResult') # 切换定位标签的作用域,这里参数是iframe的id
div = browser.find_element_by_id('draggable')
# 实例化动作链对象
action = ActionChains(browser)
# 点击长按指定的标签
action.click_and_hold(div)
# 开始移动
for i in range(5):
# perform就是让其立即执行
action.move_by_offset(17, 1).perform()
sleep(0.3)
# 释放动作链
action.release()