Gejala

Skrip yang berhasil dijalankan dalam mode yang dihadiri tidak berjalan dengan sukses dalam mode tanpa pengawas.

Biasanya gagal dengan pesan seperti: "Ada masalah saat menjalankan tindakan 'Klik'. Tautan tidak dapat diklik pada halaman web."

Penyebab

Kegagalan umum dalam proses tanpa pengawas disebabkan oleh salah satu hal berikut ini:

  • Skrip tidak diuji dalam mode yang dihadiri sebelum beralih ke tanpa pengawas

  • Konfigurasi berbeda yang digunakan oleh sesi tanpa pengawas

    • Akun Windows lain yang digunakan oleh menjalankan tanpa pengawas daripada yang digunakan untuk membuat alur

    • Resolusi layar (lihat cara mengubah resolusi layar)

    • Konfigurasi browser

      • Pengguna

      • Pemblokir popup

      • Ekstensi (hilang/ tidak diaktifkan)

  • Layar tidak dimuat seluruhnya (penundaan yang hilang)

  • Perintah UAC yang memblokir otomatisasi UI saat sesi dimulai

Solusi

Karena mungkin ada penyebab yang berbeda, solusi di bawah ini menjelaskan cara menambahkan cuplikan layar sebelum dan sesudah tindakan gagal untuk mendapatkan beberapa umpan balik visual. Melihat cuplikan layar dengan saksama setelah kegagalan skrip tanpa pengawas dapat membantu menemukan salah satu penyebab yang tercantum di atas. Ini juga menjelaskan cara membandingkan resolusi tampilan dan pengaturan skala.

Jika Anda sudah memiliki cuplikan layar dalam alur dan tangkapan layar gagal dijalankan, Anda mungkin memiliki dialog Kontrol Akun Pengguna (UAC) yang memblokir eksekusi alur Anda. Silakan masuk ke mesin yang mereprodusi masalah dengan akun yang Anda gunakan untuk menjalankan alur dan melihat apakah Anda memiliki dialog pemblokiran seperti itu. Jika anda melakukannya, ubah rutinitas startup Anda untuk mencegah hal ini terjadi.

Menambahkan cuplikan layar untuk memecahkan masalah

Mulai dengan masuk ke komputer yang mereproduksi masalah dengan akun yang Anda gunakan dalam koneksi Anda. Verifikasi bahwa tidak ada perintah UAC yang mungkin memblokir otomatisasi UI.

Jika tidak ada yang akan memblokir otomatisasi UI, ambil cuplikan layar sebelum dan sesudah langkah yang gagal dalam mode tanpa pengawas dapat membantu mendapatkan umpan balik visual.

Langkah gagal harus berlanjut pada kegagalan sehingga tangkapan layar dapat diambil setelah kegagalan.

1- Cari tindakan "Ambil tangkapan layar"

Mengambil tindakan cuplikan layar

 2- Seret dan letakkan tindakan "Ambil cuplikan layar" ke sisi skrip

Seret dan jatuhkan tindakan ambil cuplikan layar

3- Edit tindakan, gunakan "File" dan bukan clipboard, dan "before" di lokasi nama file Mengisi properti tindakan ambil cuplikan layar

4- Kemudian salin/tempelkan, dan ubah nama file cuplikan layar setelah di dalamnya Menduplikasi dan mengisi properti tindakan ambil cuplikan layar

5- Kelilingi langkah yang gagal dengan tangkapan layar

Mengapit langkah-langkah yang gagal dengan cuplikan layar

6- Mengubah perilaku onError dari langkah gagal

6a- Edit langkah dan klik "onError" di bagian bawah

Mengubah perilaku pada kesalahan

6b- Atur alur berjalan ke "Lanjutkan proses alur" dan "Masuk ke tindakan berikutnya"

Lanjutkan alur berjalan dan masuk ke tindakan berikutnya

7- Simpan, jalankan secara lokal untuk menguji bahwa tangkapan layar dihasilkan, dan meluncurkan kembali jalankan tanpa pengawas.

8- Periksa file tangkapan layar tanpa pengawas

Memeriksa resolusi layar dan perbedaan skala

Untuk membandingkan pengaturan resolusi antara eksekusi jalankan yang dihadiri dan tanpa pengawas, tambahkan tindakan di bawah ini dalam skrip Anda sebelum berjalan di kedua mode:

  • Salin/Tempelkan snippet kode di bawah ini dalam desainer PAD: ini akan membuat langkah-langkah yang diperlukan untuk merekam pengaturan resolusi dan membuat outputnya dalam file yang diberi stempel waktu.

DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyy_MM_dd_hh_mm_ss''' Result=> FormattedDateTime
Workstation.GetScreenResolution MonitorNumber: 1 MonitorWidth=> MonitorWidth MonitorHeight=> MonitorHeight MonitorBitCount=> MonitorBitCount MonitorFrequency=> MonitorFrequency
@@copilotGeneratedAction: 'False'
Scripting.RunPowershellScript.RunPowershellScript Script: $'''Add-Type @\'
using System; 
using System.Runtime.InteropServices;
using System.Drawing;
public class DPI {  
  [DllImport(\"gdi32.dll\")]
  static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
  public enum DeviceCap {
  VERTRES = 10,
  DESKTOPVERTRES = 117
  }
  public static float scaling() {
  Graphics g = Graphics.FromHwnd(IntPtr.Zero);
  IntPtr desktop = g.GetHdc();
  int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
  int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
  return (float)PhysicalScreenHeight / (float)LogicalScreenHeight;
  }
}
\'@ -ReferencedAssemblies \'System.Drawing.dll\' -ErrorAction Stop
Return [DPI]::scaling() * 100''' ScriptOutput=> MonitorScaleOutput
File.WriteText File: $'''c:\\test\\resolution_%FormattedDateTime%.txt''' TextToWrite: $'''height: %MonitorHeight% width: %MonitorWidth% frequency: %MonitorFrequency% bitCount: %MonitorBitCount% scale: %MonitorScaleOutput%''' AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.Unicode
  • Tinjau jalur file output dari tindakan terakhir, periksa apakah eksekusi lokal berhasil dan simpan.

  • Jalankan skrip dalam mode yang dihadiri dan tanpa pengawas, lalu periksa apakah resolusi dan output skala memiliki nilai yang sama di kedua mode.

Catatan

Seperti disebutkan di atas, jika tindakan cuplikan layar itu sendiri gagal, Anda mungkin memiliki dialog Kontrol Akun Pengguna (UAC) yang memblokir eksekusi alur Anda. Silakan masuk ke mesin yang mereprodusi masalah dengan akun yang Anda gunakan untuk menjalankan alur dan melihat apakah Anda memiliki dialog pemblokiran seperti itu. Jika anda melakukannya, ubah rutinitas startup Anda untuk mencegah hal ini terjadi.

Jika skrip memiliki langkah lain, skrip mungkin gagal setelah perilaku diubah untuk tidak melempar kesalahan sehingga kami dapat mengambil cuplikan layar. Jadi kegagalan setelah tangkapan layar kedua harus diabaikan. 

Setelah masalah dipahami dan diperbaiki, pulihkan perilaku asli aliran Anda untuk membuat kesalahan.

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.