Simptomas
Scenarijus, kurį galima sėkmingai vykdyti bendrai naudojamame režimu, nėra sėkmingai paleistas bendrai naudojamame režimu.
Paprastai nepavyksta pateikti tokio pranešimo: "Vykdant veiksmą "Spustelėkite" kilo problema. Saito nepavyko spustelėti tinklalapyje."
Priežastis
Įprastos nedialoginių paleidimų triktys kyla dėl vienos iš šių veiksmų:
-
Prieš perjungiant į neprižiūrimą scenarijų, jis nebuvo išbandytas naudojant bendrai naudojamą režimą
-
Skirtinga konfigūracija naudojama bendrai naudojamame seanse
-
Kita "Windows" paskyra, kurią naudoja neprižiūrimas paleidimas, nei naudojama srautui sukurti
-
Ekrano skiriamoji geba (žr. kaip pakeisti ekrano skiriamąją gebą)
-
Naršyklės konfigūracija
-
Vartotojo
-
Iššokančių langų blokavimo programa
-
Plėtiniai (trūksta / nesuaktyvinta)
-
-
-
Ekranai nevisiškai įkeliami (trūkstami vėlavimai)
-
UAC raginimas, blokuojantis vartotojo sąsajos automatizavimą prasidėjus seansui
Tirpalas
Kadangi gali būti įvairių priežasčių, toliau pateiktame sprendime aprašoma, kaip įtraukti ekrano kopijų prieš ir po nepavykus veiksmo, kad gautumėte vaizdinį atsiliepimą. Atidžiai pažvelgus į ekrano kopijas po nepavykusio bendrai naudojamo scenarijaus, gali pavykti rasti vieną iš anksčiau išvardytų priežasčių. Taip pat aprašoma, kaip palyginti ekrano skiriamąją gebą ir mastelio parametrus.
Jei savo sraute jau turite ekrano kopijų ir jų nepavyksta vykdyti, gali būti, kad dialogo langas Vartotojo paskyros valdymo tarnyba (UAC) blokuoja srauto vykdymą. Prisijunkite prie kompiuterio, kuris atkuria problemą su paskyra, kurią naudojate srautui vykdyti, ir patikrinkite, ar yra toks blokavimo dialogo langas. Jei tai padarysite, pakeiskite paleisties paprogramę, kad tai neįvyktų.
Ekrano kopijų įtraukimas trikčių diagnostikai
Pirmiausia prisijunkite prie kompiuterio, kuris atkuria problemą su paskyra, kurią naudojate prisijungdami. Patikrinkite, ar nėra UAC raginimo, kuris gali blokuoti vartotojo sąsajos automatizavimą.
Jei nėra nieko, kas užblokuotų vartotojo sąsajos automatizavimą, padarykite ekrano kopiją prieš ir po nepavykusį žingsnį bendrai naudojamame režimu, kad gautumėte vaizdinį atsiliepimą.
Nesėkmingas veiksmas turėtų būti tęsiamas nepavykus, kad po trikties būtų galima padaryti ekrano kopiją.
1. Ieškokite veiksmo "Padaryti ekrano kopiją"
2. Nuvilkite veiksmą "Padaryti ekrano kopiją" į scenarijaus pusę
3. Redaguokite veiksmą, vietoje mainų srities naudokite "Failas" ir "prieš",
4- Tada nukopijuokite / įklijuokite ir pakeiskite ekrano kopijos failo vardąsu juo
5. Supa nepavykusį veiksmą su ekrano nuotraukomis
6. Nepavykusio veiksmo onError veikimo keitimas
6a- Redaguokite veiksmą ir apačioje spustelėkite "onError"
6b- Nustatykite srauto vykdymą kaip "Tęsti srauto vykdymą" ir "Eiti į kitą veiksmą"
7. Įrašykite, paleiskite vietoje , kad patikrintumėte, ar sukurtos ekrano kopijos, ir iš naujo paleiskite neprižiūrimą paleidimą.
8. Patikrinkite bendrai naudojamas ekrano kopijas.
Patikrinkite ekrano skiriamąją gebą ir mastelio skirtumus
Norėdami palyginti skiriamosios gebos parametrus tarp attended ir unattended run executions, prieš paleisdami abiem režimais į scenarijų įtraukite toliau nurodytus veiksmus:
-
Nukopijuokite / įklijuokite toliau pateiktą kodo fragmentą PAD dizaino įrankyje: taip sukursite reikiamus veiksmus, kad užfiksuotumėte skiriamosios gebos parametrus ir išvestumėte juos į laiko žymos failą.
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
-
Peržiūrėkite išvesties failo kelią nuo paskutinio veiksmo, patikrinkite, ar vietinis vykdymas sėkmingas ir įrašykite.
-
Paleiskite scenarijų ir bendrai naudojamais, ir bendrai naudojamais režimais, tada patikrinkite, ar skiriamoji geba ir mastelio išvestis turi tas pačias reikšmes abiejuose režimuose.
Pastaba.
Kaip minėta anksčiau, jei pats ekrano kopijų veiksmas nepavyksta, gali būti, kad vartotojo paskyros valdymo tarnybos (UAC) dialogo langas blokuoja srauto vykdymą. Prisijunkite prie kompiuterio, kuris atkuria problemą su paskyra, kurią naudojate srautui vykdyti, ir patikrinkite, ar yra toks blokavimo dialogo langas. Jei tai padarysite, pakeiskite paleisties paprogramę, kad tai neįvyktų.
Jei scenarijuje yra kitų veiksmų, gali nepavykti po to, kai veikimo būdas buvo pakeistas, kad nebūtų klaidų, kad galėtume padaryti ekrano kopiją. Todėl triktys po antros ekrano kopijos turėtų būti ignoruojamos.
Kai problema suprasite ir išspręsite problemą, atkurkite pradinį srauto veikimą, kad išmestumėte klaidas.