简单的图片滑动&标签页的前进后退
注意:selenium每次驱动的浏览器都是一个干净的,新的浏览器
1.简单的图片滑动
from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR from selenium.webdriver.common.keys import Keys # 键盘按键操作 from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait # 等待页面加载某些元素 import time driver = webdriver.Chrome() driver.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable') wait=WebDriverWait(driver,3) # driver.implicitly_wait(3) # 使用隐式等待 try: driver.switch_to.frame('iframeResult') ##切换到iframeResult,因为整体页面里面又嵌套了一个html,故需要切换 sourse=driver.find_element_by_id('draggable') #源位置 target=driver.find_element_by_id('droppable') #目标位置 #方式一:基于同一个动作链串行执行(瞬间拿过去,秒移到图片目标位置)(机器人) # actions=ActionChains(driver) #拿到动作链对象,复制给一个变量(调用ActionChains,必须把驱动对象传进去。) # actions.drag_and_drop(sourse,target) #把动作放到动作链中,准备串行执行 # actions.perform() #执行操作,上面一句仅仅是编织行为,并未执行 #方式二:不同的动作链,每次移动的位移都不同 (模拟人的行为) ActionChains(driver).click_and_hold(sourse).perform() # 先点击并拽住源图片,再拖移 distance=target.location['x']-sourse.location['x'] track=0 while track < distance: ActionChains(driver).move_by_offset(xoffset=2,yoffset=0).perform() #x轴位移移动2,y轴位移移动为0 track += 2 ActionChains(driver).release().perform() #手松开,即actionChains要重新执行一次(perform) time.sleep(10) finally: driver.close()
2.标签的前进后退
import time from selenium import webdriver browser=webdriver.Chrome() try: browser.implicitly_wait(10) browser.get('https://www.baidu.com') browser.get('https://jd.com/') browser.get('https://cnblogs.com/') time.sleep(2) # 回退操作 browser.back() time.sleep(1) # 前进操作 browser.forward() time.sleep(1) browser.back() time.sleep(10) finally: browser.close()