zoukankan      html  css  js  c++  java
  • Selenium之鼠标悬浮,窗口切换,截图

    Selenium之鼠标悬浮

    import time
    from selenium import webdriver
    from selenium.webdriver import ActionChains
    
    driver = webdriver.Chrome()
    # driver.get('https://www.cnblogs.com/TodayWind/')
    # 悬浮
    # ActionChains(driver).move_to_element(driver.find_element_by_id('Header1_HeaderTitle')).perform()  # perform代表执行的意思
    
    # 拖拽
    driver.get("https://www.jq22.com/demo/pintu20151229/")
    time.sleep(1)
    driver.find_element_by_id('start').click()
    time.sleep(1)
    start = driver.find_element_by_xpath('//*[@id="container"]/div[3]')
    end = driver.find_element_by_xpath('//*[@id="container"]/div[14]')
    ActionChains(driver).drag_and_drop(start, end).perform()
    # 鼠标左键单击
    ActionChains(driver).click(driver.find_element_by_xpath('')).perform()
    # 鼠标左键双击
    ActionChains(driver).double_click(driver.find_element_by_xpath('')).perform()
    # 鼠标右键单击
    ActionChains(driver).context_click(driver.find_element_by_xpath('')).perform()

     窗口切换

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    driver.switch_to.window()  # 切换窗口
    
    driver.switch_to.frame()  # 进入iframe弹框
    
    driver.switch_to.default_content()  # 退出iframe
    
    # window_handles  # 窗口数组

    截图

    from selenium import webdriver
    from PIL import Image
    import time
    
    # 1. # 截全图(非完整图,屏幕100%的图)
    a_img = './a.png'  # 只能是png格式
    b_img = './b.png'
    driver = webdriver.Chrome()
    driver.implicitly_wait(30)
    driver.get('http://www.baidu.com')
    driver.save_screenshot(a_img)
    
    # 2.只截取验证码的图片
    # 获取验证码的大小
    imageCode = driver.find_element_by_id('imageCode')  # 定位到图片
    print(imageCode.size)  # 查看图片的大小
    left = imageCode.location['x'] * 1.24  # * 1.24是因为浏览器缩放的问题
    top = imageCode.location['y'] * 1.24
    right = imageCode.size['width'] + left
    height = imageCode.size['height'] + top
    temp = Image.open(a_img)
    temp = temp.crop((left, top, right, height))  # 这里是元组
    temp.save(b_img)
    
    # 只截取验证码的图片 使用selenium 取巧截取图片
    imageCode = driver.find_element_by_id('imageCode')  # 定位到图片
    imageCode.screenshot(a_img)
    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    python3 TypeError: a bytes-like object is required, not 'str'
    Centos 安装Python Scrapy PhantomJS
    Linux alias
    Vim vimrc配置
    Windows下 Python Selenium PhantomJS 抓取网页并截图
    Linux sort
    Linux RSync 搭建
    SSH隧道 访问内网机
    笔记《鸟哥的Linux私房菜》7 Linux档案与目录管理
    Tornado 错误 "Global name 'memoryview' is not defined"
  • 原文地址:https://www.cnblogs.com/TodayWind/p/14903631.html
Copyright © 2011-2022 走看看