0

Sikuli にボットであるスクリプトがあります。次のようになります。

for i in range (100):
    find(YoutubeChannelButton)
    click(YoutubeChannelButton)
    wait(3)
    while(1): 
        if exists(LikeButton):
            click(LikeButton)
            wait(6)
            click(Close)
            wait(10)
        else:
            click(Close)
            wait(5)

存在する場合は「いいね」ボタンをクリックし、存在しない場合は閉じるボタンをクリックしてから、もう一度プロセスを再試行します。

要約すると:

  • 画像をチェックします
  • そこにない場合は、現在のウィンドウを閉じます
  • その後、プロセスを最初からやり直します。

問題は、ジョブを 1 回 (正しく) 実行した後、すべてのページを閉じ始めることです。

4

1 に答える 1

1

確認するには、作業中のスクリーンショットをいくつか見る必要がありますが、ループの設定が間違っているように見えます. LikeButton が存在しない場合は、[閉じる] をクリックしてループを再開します。現在のウィンドウの背後にあるウィンドウに LikeButton がない限り、まだ存在しないため、そのウィンドウも閉じます。

なぜあなたはそれを次のように書きませんか

for i in range (100):
    find(YoutubeChannelButton)
    click(YoutubeChannelButton)
    wait(3)
    if exists(LikeButton):
        click(LikeButton)
        wait(6)
        click(Close)
        wait(10)
    else:
        click(Close)
        wait(5)
于 2013-07-06T00:49:54.580 に答える