Oire
Komentosarja, joka voidaan suorittaa onnistuneesti osallistumistilassa, ei toimi onnistuneesti valvomattomassa tilassa.
Se epäonnistuu yleensä esimerkiksi seuraavanlaisen viestin kanssa: "Napsautus-toiminnon suorittamisessa ilmeni ongelma. Linkkiä ei voitu napsauttaa verkkosivulla."
Syy
Automaattisen ajon tyypilliset virheet johtuvat jostakin seuraavista:
-
Komentosarjaa ei ole testattu osallistumistilassa ennen automaattiseen käyttöön siirtymistä
-
Eri määritysten käyttäminen valvomattomassa istunnossa
-
Eri Windows-tili, jota käytetään automaattisessa suoritustoiminnossa, kuin työnkulun luomiseen käytetty
-
Näytön tarkkuus (katso näytön tarkkuuden muuttaminen)
-
Selaimen määritys
-
Käyttäjä
-
Ponnahdusikkunan esto
-
Laajennukset (puuttuu/ ei aktivoitu)
-
-
-
Näyttöjä ei ladata kokonaan (puuttuvat viiveet)
-
UAC-kehote, joka estää käyttöliittymän automaation istunnon alkaessa
Ratkaisu
Koska syitä voi olla eri, alla olevassa ratkaisussa kuvataan, miten voit lisätä näyttökuvia ennen epäonnistunutta toimintoa ja sen jälkeen visuaalisen palautteen saamiseksi. Jos katsot näyttökuvia huolellisesti automaattisen komentosarjavirheen jälkeen, löydät jonkin yllä luetelluista syistä. Siinä kuvataan myös, miten näytön tarkkuutta ja skaalausasetuksia verrataan.
Jos työnkulussasi on jo näyttökuvia, mutta niitä ei suoriteta, sinulla voi olla Käyttäjätilien valvonta (UAC) -valintaikkuna, joka estää työnkulun suorittamisen. Kirjaudu tietokoneeseen, joka toistaa ongelman tilillä, jota käytät työnkulun suorittamiseen, ja tarkista, onko sinulla tällainen estovalintaikkuna. Jos teet niin, voit estää tämän muuttamalla käynnistysrutiinia.
Näyttökuvien lisääminen vianmääritykseen
Aloita kirjautumalla tietokoneeseen, joka toistaa ongelman tilillä, jota käytät yhteydessäsi. Varmista, ettei käyttöliittymän automatisointia estävää käyttäjätilien valvontakehotetta ole.
Jos mikään ei estä käyttöliittymän automaatiota, ota näyttökuva ennen automaattisen tilan epäonnistunutta vaihetta ja sen jälkeen, jotta saat visuaalista palautetta.
Virheen epäonnistumisen pitäisi jatkua epäonnistumisen jälkeen, jotta näyttökuva voidaan ottaa virheen jälkeen.
1- Etsi Ota näyttökuva -toiminto
2- Vedä ja pudota Ota näyttökuva -toiminto komentosarjan puolelle
3- Muokkaa toimintoa, käytä Leikepöydän sijaan Tiedosto-merkkiä ja tiedostonimen sijainnissa "ennen"
4- Kopioi/liitä ja muuta näyttökuvan tiedostonimeä sen jälkeen
5- Ympäröi epäonnistunut vaihe näyttökuvilla
6- Virhevaiheenvirhetoiminnon muuttaminen
6a- Muokkaa vaihetta ja napsauta "onError" alareunassa
6b- Määritä työnkulun suoritus -asetukseksi "Jatka työnkulkua" ja "Siirry seuraavaan toimintoon"
7- Tallenna, suorita paikallisesti testataksesi, että näyttökuvat on tuotettu, ja käynnistä automaattinen suoritus uudelleen.
8- Tarkista automaattiset näyttökuvatiedostot.
Näytön tarkkuuden ja mittakaavan erojen tarkistaminen
Jos haluat verrata osallistuneen ja automaattisen suorituksen suoritusten tarkkuusasetuksia, lisää alla olevat toiminnot komentosarjaan ennen molemmissa tiloissa suorittamista:
-
Kopioi tai liitä alla oleva koodikatkelma PAD-suunnittelusovelluksessa: Tämä luo tarvittavat vaiheet tarkkuusasetusten tallentamiseksi ja niiden tulostamiseksi aikaleimattuun tiedostoon.
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
-
Tarkista edellisen toiminnon tiedostopolku, tarkista, että paikallinen suoritus on onnistunut, ja tallenna.
-
Suorita komentosarja sekä osallistuneissa että valvomattomassa tilassa ja tarkista sitten, onko tarkkuudella ja skaalaustulolla samat arvot molemmissa tiloissa.
Huomautus
Kuten edellä mainittiin, jos itse näyttökuvatoiminto epäonnistuu, sinulla voi olla käyttäjätilien valvonnan valintaikkuna, joka estää työnkulun suorittamisen. Kirjaudu tietokoneeseen, joka toistaa ongelman tilillä, jota käytät työnkulun suorittamiseen, ja tarkista, onko sinulla tällainen estovalintaikkuna. Jos teet niin, voit estää tämän muuttamalla käynnistysrutiinia.
Jos komentosarjalla on muita vaiheita, se voi epäonnistua sen jälkeen, kun toimintoa on muutettu, eikä se anna virheitä, jotta voimme ottaa näyttökuvan. Toisen näyttökuvan jälkeiset virheet on siis ohitettava.
Kun ongelma on ymmärretty ja korjattu, palauta työnkulun alkuperäinen toiminta virheiden heittämiseksi.