2017-12-09 7 views
0

Pythonの新機能(過去数ヶ月以内)と私はそれを楽しんでいます。理解して使用するのは簡単です。この場合を除いて!locateCenterOnScreen座標をX Yパラメータに渡して、Pythonで領域をスクリーンショットすることはできますか?

セレンでサイトにログインし、特定のページに移動し、日付の値を入力し、必要な結果を表示するスクリプトを作成しました。それは位置にスクロールし、そのページの一部だけをスクリーンショットする必要があります。最初は画面全体を保存しておき、後でそれを切り抜くことにしましたが、必要な領域だけをスクリーンショットすることは可能です(さらに効率的です)。

コーナーの開始位置と地域を選択する方法を複数試してみました。最終的にpyautoguiを使用してlocateCenterOnScreenを使用して、希望する場所のサンプルスクリーンショットを取得しました。私が保存したい部分全体のこれにより、ウィンドウが毎回同じ場所にない場合でも、ウィンドウがどこにあっても正しい領域が正確に保存されます。

したがって、

location = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG')

を使用して適切にスクリーンの座標を見つけるために正しい(X、Y)の値を返します。その後、私は

screengrabPic = pyautogui.screenshot(region=(location, 720, 340)) screengrabPic.save("transactions.png")

を使用していますエラーが

AssertionError: region argument must be a tuple of four ints

と判明したため、私はlocationとして渡された領域パラメータの確信している、と私は(int(location)かを試してみました'locationX, locationY,

私は、私の車輪をあまりにも多く回転させるのではなく、助けを手に入れたいと考えました。ありがとう!

答えて

0

OK、私は多くの試行錯誤を行い、最終的な解決策を見つけました。 pyautogui.readthedocsで

location = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG') 
print(location) 
locationX, locationY = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG') 
screengrabPic = pyautogui.screenshot(region=(locationX, locationY, 720, 340)) 
screengrabPic.save("tolls_" + filename + ".png") 

それは、この構文を説明し、まだ要件がlocationXとlocationYに一度最初に、再度センターを見つけ実行するためだったと特異的ではなかったです。

関連する問題