简单的图片滑动&标签页的前进后退

注意: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()

  

 

posted @ 2019-06-18 10:35  evan0925  阅读(300)  评论(0编辑  收藏  举报