zoukankan      html  css  js  c++  java
  • Python

    from selenium import webdriver
    #引入ActionChains类  提供了鼠标的操作方法
    from selenium.webdriver.common.action_chains import  ActionChains
    
    from selenium.webdriver.common.keys import Keys
    from ReadTxt_demo import readTxt
    import time
    
    
    #鼠标键盘事件
    '''
    ActionChains 常用方法
    
    perform()  执行所有ActionChains 中存储的行为;
    context_click()  右击;
    double_click()   双击;
    drag_and_drop()  拖动;
    move_to_element()  鼠标悬停。
    
    '''
    
    driver = webdriver.Firefox()
    
    driver.maximize_window()
    #打开百度网盘
    driver.get("https://pan.baidu.com")
    
    #点击 “帐号密码登录”
    driver.find_element_by_xpath(".//*[@id='login-middle']/div/div[6]/div[2]/a").click()
    # 引入读取文件模块获取用户名密码
    # from ReadTxt_demo import readTxt
    filePath = 'userInfo.txt'
    re_name, re_pwd = readTxt(filePath)
    #清空输入框,防止追加输入
    driver.find_element_by_name("userName").clear()
    username = driver.find_element_by_name("userName")
    #输入用户名
    username.send_keys(re_name)
    #通过键盘敲击tab ,切换到下一个输入框。
    username.send_keys(Keys.TAB)
    time.sleep(2)
    password = driver.find_element_by_name("password")
    password.send_keys(re_pwd)
    password.send_keys(Keys.ENTER)
    time.sleep(3)
    
    # 事实证明如果不加隐式等待implicitly_wait(5) 会出现:错误:Message: Unable to locate element:
    #所以 implicitly_wait(5)  比sleep 靠谱
    driver.implicitly_wait(5)
    #测试单击操作
    #driver.find_element_by_xpath(".//*[@id='h5Input0']").click()
    
    #定位到元素,进行右击操作
    #通过 link_text 定位。
    right_click = driver.find_element_by_link_text('新建文件夹(1)')
    driver.implicitly_wait(5)
    #鼠标悬停
    ActionChains(driver).move_to_element(right_click).perform()
    time.sleep(10)
    #对定位到的元素执行右击操作
    ActionChains(driver).context_click(right_click).perform()
    #.//*[@id='layoutMain']/div[2]/div[3]/div/div/dd[1]/div[2]/div[1]
    
    #鼠标拖动操作,
    #定义原位置、目标位置=right_click
    driver.implicitly_wait(5)
    file_source = driver.find_element_by_xpath(".//*[@id='layoutMain']/div[2]/div[3]/div/div/dd[1]/div[2]/div[1]")
    driver.implicitly_wait(5)
    ActionChains(driver).drag_and_drop(file_source,right_click).perform()
    driver.implicitly_wait(5)
    
    #鼠标双击
    ActionChains(driver).double_click(right_click).perform()
    time.sleep(13)
    '''
    from selenium.webdriver.common.action_chains import  ActionChains
    导入提供鼠标操作的 ActionChains 类
    ActionChains(driver)
    调用ActionChains()类,将浏览器驱动driver作为参数传入
    context_click(right_click)
    context_click()方法用户模拟鼠标右键操作,在调用时需要指定元素定位
    perform()
    执行所有ActionChains中存储的行为,可以理解为对整个操作的提交动作。
    
    '''
    #下面时 键盘操作
    
    
    
    
    
    
    
    driver.quit()
    #driver.close()
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    
    '''
    
    from selenium.webdriver.common.keys import Keys
    在使用键盘按键方法前需要先导入 keys 类包。
    下面经常使用到的键盘操作:
    send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
    send_keys(Keys.SPACE) 空格键(Space)
    send_keys(Keys.TAB) 制表键(Tab)
    send_keys(Keys.ESCAPE) 回退键(Esc)
    send_keys(Keys.ENTER) 回车键(Enter)
    send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
    send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)博客园---虫师
    http://fnng.cnblogs.com 52
    send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
    send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
    Keys 类所提供的按键请查阅 webdriver API.
    
    '''
    
    
    
    driver = webdriver.Firefox()
    url = "http://www.hao123.com"
    driver.maximize_window()
    driver.get(url)
    
    driver.implicitly_wait(3)
    driver.find_element_by_id('search-input').clear()
    driver.find_element_by_id('search-input').send_keys('seleniumm')
    driver.implicitly_wait(3)
    #回删
    driver.find_element_by_id('search-input').send_keys(Keys.BACK_SPACE)
    driver.implicitly_wait(3)
    #追加空格
    driver.find_element_by_id('search-input').send_keys(Keys.SPACE)
    driver.implicitly_wait(3)
    driver.find_element_by_id('search-input').send_keys('教程')
    driver.implicitly_wait(3)
    #全选内容
    driver.find_element_by_id('search-input').send_keys(Keys.CONTROL,'a')
    driver.implicitly_wait(3)
    #剪切内容
    driver.find_element_by_id('search-input').send_keys(Keys.CONTROL,'x')
    driver.implicitly_wait(3)
    
    #粘贴内容
    driver.find_element_by_id('search-input').send_keys(Keys.CONTROL,'v')
    driver.implicitly_wait(3)
    
    #回车代替 点击
    driver.find_element_by_id('search-input').send_keys(Keys.ENTER)
    driver.implicitly_wait(3)
    
    time.sleep(10)
    
    driver.quit()
  • 相关阅读:
    X 如何在mysql客户端即mysql提示符下执行操作系统命令
    X MySQL UNDO表空间独立和截断 ,mysql undo 的历史
    X Mysql5.7忘记root密码及mysql5.7修改root密码的方法
    X mysql密码的安全策略ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    二分法查找
    elasticsearch API
    logstash的基础
    elasticsearch的基础
    Linux的进程管理
    Linux的网卡配置
  • 原文地址:https://www.cnblogs.com/Skyyj/p/6687028.html
Copyright © 2011-2022 走看看