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()