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