。 say_id就是對(duì)象的函數(shù),你能夠調(diào)用它。每個(gè)對(duì)象的函數(shù)都需要一個(gè)self參數(shù),表示[color]這個(gè)對(duì)象。 圖形界面的奧秘其實(shí)并不深?yuàn)W。我相信很多人學(xué)習(xí)windows編程都是從寫一個(gè)窗口開始的,而且都是從嘗試?yán)斫饽莻€(gè)消息和事件驅(qū)動(dòng)的模型入手的。大體的過程是這樣的,窗口就是用象素畫出來的。你可以把一個(gè)窗口想象成一個(gè)窗口,也可以把窗口看成一堆象素的集合。就像有人說看女色不過是皮肉色相一樣。 而對(duì)于圖形界面的操控一般是通過鼠標(biāo)和鍵盤來完成的。鼠標(biāo)在屏幕上有一個(gè)自己的形象,那就是一個(gè)箭頭(當(dāng)然你也可以調(diào)整這個(gè)圖形為其他好玩的東西,it is your freedom)。而鍵盤呢則一般表示為一個(gè)虛線的框,表示這個(gè)是鍵盤的”焦點(diǎn)“所在的地方。 或者是編輯框中閃動(dòng)的豎杠。 Python函數(shù)這兩點(diǎn)中有一個(gè)共同點(diǎn),就是都有一個(gè)位置來確定要操作的對(duì)象。你點(diǎn)下鼠標(biāo)的時(shí)候,你操作的就是鼠標(biāo)的箭頭尖端指向的那個(gè)空間,而鍵盤按下也是在其焦點(diǎn)所在的控件那兒放聲。 然后就像一封信一樣從操作系統(tǒng)投遞到了窗口所在的應(yīng)用程序。然后應(yīng)用程序有一個(gè)事先注冊(cè)的”窗口過程“,其實(shí)就是一個(gè)函數(shù),用來接收這封“信”。其實(shí)就是接收到傳過來的參數(shù)。 然后再進(jìn)行一些判斷,作出一定的響應(yīng)。這個(gè)就是所謂的事件驅(qū)動(dòng)。在沒有冗長(zhǎng)的代碼,和展示所有細(xì)節(jié)的情況下,如果你真的以前對(duì)這個(gè)過程一無所知,肯定會(huì)覺得非常茫然。這個(gè)一筆帶過的敘述其實(shí)只是讓你有一個(gè)感性的認(rèn)識(shí)。其實(shí)在Python中使用窗口根本不用管諸葛么多。 基本上只是把自己要的窗口和控件,給一些位置的參數(shù),一些文字的提示內(nèi)容的參數(shù)就能把窗口擺好,顯示出來。然后再通過代碼告訴Python函數(shù) ,當(dāng)“這個(gè)按鈕按下的時(shí)候執(zhí)行這個(gè)函數(shù)”源碼天空 ,然后就能讓窗口有響應(yīng)。 最后記得給一個(gè)退出窗口的辦法就一切OK了。其中能省的復(fù)雜度基本上都被庫(kù)給隱藏掉了。付出的代價(jià)是慢一些,但是我就不相信你能感覺出來,除非你用的電腦連vcd都看不流暢。所以大可放心的享受這種便利。
成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元新華做網(wǎng)站,已為上家服務(wù),為新華各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
可以試著將語(yǔ)句拆分開:actions = ActionChains(driver)
print函數(shù)輸出要定位的元素的id、屬性等,看是否能輸出正確值。
Xpath未寫入內(nèi)容,也可能其它原因沒有定位到元素,或者執(zhí)行懸停的元素本身就沒有懸停效果的
right被定義成常量autopy.mouse.toggle(button=autopy.mouse.Button.RIGHT,down=True)或者
autopy.mouse.toggle(autopy.mouse.Button.RIGHT,True)即可
Python有一個(gè)內(nèi)置的庫(kù) matplotlib,它提供了圖形界面(GUI)的功能,允許用戶直接在圖形上點(diǎn)擊并獲取鼠標(biāo)位置。
下面是一個(gè)簡(jiǎn)單的例子,展示了如何使用 matplotlib 庫(kù)獲取鼠標(biāo)點(diǎn)擊事件并返回三維坐標(biāo):
Copy code# 首先,導(dǎo)入 matplotlib 庫(kù)import matplotlib.pyplot as plt# 定義圖像窗口fig = plt.figure()# 獲取當(dāng)前坐標(biāo)系ax = fig.add_subplot(111, projection='3d')# 在圖像窗口中添加事件監(jiān)聽器,用于監(jiān)聽鼠標(biāo)點(diǎn)擊事件def onclick(event): # 獲取鼠標(biāo)點(diǎn)擊時(shí)的坐標(biāo)
x, y, z = event.xdata, event.ydata, event.zdata print('x={}, y={}, z={}'.format(x, y, z))# 將事件監(jiān)聽器綁定到當(dāng)前坐標(biāo)系cid = fig.canvas.mpl_connect('button_press_event', onclick)# 顯示圖像窗口plt.show()
如果你運(yùn)行上面的代碼,它會(huì)打開一個(gè)三維坐標(biāo)系的圖形窗口,當(dāng)你在圖形窗口中點(diǎn)擊時(shí),會(huì)在控制臺(tái)中輸出鼠標(biāo)點(diǎn)擊的三維坐標(biāo)。
注意:如果你沒有安裝 matplotlib 庫(kù),可以使用 'pip install matplotlib
一、安裝pyautogui
pip install pyautogui
二、調(diào)用
import time
import random
import pyautogui
三、自動(dòng)控制鼠標(biāo)
while 1:
# 15秒鐘移動(dòng)一次鼠標(biāo)(移動(dòng)鼠標(biāo)時(shí)間可以根據(jù)自己需要設(shè)定)
time.sleep(15)
pyautogui.moveTo(x=5100,y=random.randint(1500,1600))
################################移動(dòng)鼠標(biāo)
####pyautogui.moveTo()函數(shù)將鼠標(biāo)立即移動(dòng)到屏幕的指定位置:x,y為坐標(biāo),duration指定所需秒數(shù)
import pyautogui
for i in range(10):
? ? pyautogui.moveTo(5100,1600,duration=5.25)
? ? pyautogui.moveTo(200,100,duration=5.25)
? ? pyautogui.moveTo(200,200,duration=5.25)
? ? pyautogui.moveTo(100,200,duration=5.25)
####pyautogui.moveRel()函數(shù)相對(duì)于當(dāng)前的位置移動(dòng)鼠標(biāo)
import pyautogui
for i in range(10):
? ? pyautogui.moveRel(100,0,duration=0.25)
? ? pyautogui.moveRel(0,100,duration=0.25)
? ? pyautogui.moveRel(-100,0,duration=0.25)
? ? pyautogui.moveRel(0,-100,duration=0.25)
####pyautogui.position()函數(shù)確定鼠標(biāo)當(dāng)前的位置
pyautogui.position()