selenium处理iframe:

-如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)

-动作链(拖动):from selenium.webdriver import ActionChains(bro)

-实例化一个动作链对象:

#动作链

-action=ActionChains(bro)

#点击长按指定的标签

-action.click_and_hold(div)

-move_by_offset(x,y)

-perform()让动作链立即执行

-action.release()释放动作链对象

 

 iframe指html中含有子html,要获取子html中的div标签中的元素,可以用selenium来处理

实例一:

 1 from selenium import webdriver
 2 from lxml import etree
 3 from time import sleep
 4 #导入动作链
 5 from selenium.webdriver import  ActionChains
 6 
 7 bro = webdriver.Chrome(executable_path='./chromedriver.exe')
 8 
 9 bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
10 #如果定位的标签是存在于iframe标签之中的则必须通过如下操作再进行标签定位
11 bro.switch_to.frame('iframeResult') #切换浏览器标签定位的作用域
12 div = bro.find_element_by_id('draggable')
13 
14 #动作链
15 action=ActionChains(bro)
16 #点击长按指定的标签
17 action.click_and_hold(div)
18 
19 for i in range(5):
20     #perform()立即执行动作链操作
21     #move_by_offset(x,y); x水平方向, y竖直方向
22     action.move_by_offset(17,0).perform()
23     sleep(0.3)
24 
25 #释放动作链
26 action.release()
27 
28 sleep(8)
29 bro.quit()