Python - selenium_WebDriver 鼠標鍵盤事件


 

 

 

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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM