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()
  • 相关阅读:
    nowcoderD Xieldy And His Password
    Codeforces681D Gifts by the List
    nowcoder80D applese的生日
    Codeforces961E Tufurama
    Codeforces957 Mahmoud and Ehab and yet another xor task
    nowcoder82E 无向图中的最短距离
    nowcoder82B 区间的连续段
    Codeforces903E Swapping Characters
    Codeforces614C Peter and Snow Blower
    Codeforces614D Skills
  • 原文地址:https://www.cnblogs.com/Skyyj/p/6687028.html
Copyright © 2011-2022 走看看