Apricot-S / majsoulrpa

A Robotic Process Automation (RPA) framework for Mahjong Soul (雀魂)
Other
19 stars 5 forks source link

友人戦ホストの検出に失敗することがある #273

Closed Apricot-S closed 2 months ago

Apricot-S commented 2 months ago

概要

友人戦部屋を作成し部屋に入った際、画面の検出に失敗する 画面解像度が小さいほど失敗率が上がる傾向がある

原因

部屋に入ってから「装飾品変更」、「開始」ボタンが表示されるまでにラグがあるため、画面の検出に使用している「開始」ボタンが表示される前に検出処理が実行されるため

2024-07-14-14-54-17-PresentationNotDetectedError 2024-07-14-14-49-27-PresentationNotDetectedError
Apricot-S commented 2 months ago

根本的な原因は _wait で表示を待機している対象が画面左上の「友人戦」の文字であるため。 「友人戦」は _create で検出する「開始」より先に表示されるので、 _wait が終わり_create が検出するまでに「開始」が表示されていないことがある。

画面解像度が大きいとスクリーンショットの処理に時間がかかるため、 _wait の完了後に十分時間があり、問題が発生しなかったと考えられる。

Apricot-S commented 2 months ago

_wait をオーバーライドしてホストでは「開始」ボタンの表示を待機するようにすれば問題は解決する。