- 如果定位的标签在iframe中,需要先切换到iframe中
- 切换到iframe: driver.switch_to.frame('iframe的id属性值')
-动作链(拖动):from selenium.webdriver import ActionChains
- 实例化一个动作链对象
- 执行一系列的动作链操作
- 调用perform()方法执行链中的所有操作
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors') # 忽略证书错误
bro = webdriver.Chrome(options=options)
bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
#如果定位的标签存在于iframe标签之中的则必须通过如下操作在进行标签定位
bro.switch_to.frame('iframeResult')#切换浏览器标签定位的作用域
element = bro.find_element(By.ID, 'draggable')
#动作链
action = ActionChains(bro)
action.click_and_hold(element)
for i in range (5):
#perform()表示执行链中的一个动作
# move_by_offset(x,y)x表示横向移动的距离,y表示纵向移动的距离
action.move_by_offset(17,0).perform()
sleep(0.3)
#释放动作链
action.release()
标签:webdriver,处理,selenium,bro,iframe,action,import
From: https://www.cnblogs.com/lin513/p/18045697