selenium 模擬鍵盤事件 復制粘貼、右鍵、回車等


 

#coding=utf-8
'''
selenium
'''
from selenium import webdriver as wd
import time
bc=wd.Chrome(executable_path='f:\\chromedriver')
#bc=wd.Ie(executable_path='f:\\IEDriverServer')
bc.get('https://www.sogou.com')

 

 
        
#模擬鍵盤事件
from selenium.webdriver.common.keys import Keys
query=bc.find_element_by_id('query')
query.send_keys(Keys.F12)#打開開發者模式
time.sleep(3)
#query.send_keys(Keys.F12)#第二次點擊 關閉開發者模式
query.send_keys('selenium')

 

 
        
#模擬回車鍵
#query.send_keys(Keys.RETURN)
query.send_keys(Keys.ENTER)
time.sleep(3)

 

 
        
#模擬鍵盤復制、粘貼 ctrl+v
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import win32clipboard as w
import time
import win32api
#寫了2個函數
#讀取剪切板
def get_text():
 w.OpenClicpboard()
 d=w.GetClipboardData(win32con.CF_TEXT)
 w.CloseClipboard()
 return d
#設置剪切板內容
def setText(astring)
 w.OpenClicpboard()
 w.EmptyClipboard()
 w.SetClipboardData(win32con.CF_UNICODETEXT,astring)
 w.CloseClipboard()
vk_CODE={'enter':0x0D,'ctrl':0x11,'a':0x41,'v':0x56,'x':0x58}
#鍵盤按下
def keyDown(keyName):
 win32api.keybd_event(vk_CODE[keyName],0,0,0)
#鍵盤抬起
def keyUp(keyName):
 win32api.keybd_event(vk_CODE[keyName],0,win32con.KEYEVENT_KEYUP,0)
content='光榮之路'
set_text(content)
getcontent=get_text()
print('剪切板中的內容:',getcontent.decode('gbk'))
bc.find_element_by_id('kw').click()
time.sleep(1)
keyDown('ctrl')
keyDown('v')
#釋放ctrl+v
keyUp('v')
keyUp('ctrl')
time.sleep(1)
bc.find_element_by_id('su').click()
time.sleep(3)

 

 
        
#ActionChains模擬鍵盤復制、粘貼(並發可以使用)
ActionChains(bc).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
ActionChains(bc).key_down(Keys.CONTROL).send_keys('x').key_up(Keys.CONTROL).perform()
bc.get('http://www.baidu.com')
bc.find_element_by_id('kw').click()
ActionChains(bc).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
bc.find_element_by_id('su').click()

 

 
        
#鼠標右鍵
input_box=bc.find_element_by_id('kw')
ActionChains(bc).context_click(input_box).perform()#鼠標右鍵
set_text('我是誰')
ActionChains(bc).send_keys('p').perform()#粘貼  #這個沒有搞定總是輸入P
bc.find_element_by_id('stb').click()

#鼠標左鍵按住、松開
div=bc.find_element_by_id('div1')
a=ActionChains(bc)
a.click_and_hold(div).perform()#按住左鍵
time.sleep(2)
a.realease(div).perform()#釋放鼠標作左鍵
a.click_and_hold(div).perform()#按住左鍵
time.sleep(2)
a.realease(div).perform()

 


免責聲明!

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



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