Warum gibt mir WinAppDriver immer Fehler "System.inValidoperationException: Access verweigert" Wenn ich versuche, in ein
Posted: 22 May 2025, 13:09
Meine Tests fehlen, wenn Sie versuchen, mit dem zweiten Fenster zu interagieren, sei es eine Taste, ein Treeview oder eine Menuitem. Zuerst habe ich mit dem Baum interagiert und dachte, dass das Problem darin bestand, weil die Anwendung WPF ist, aber es stellt sich nicht heraus. < /P>
Wenn die Anwendung startet, wird das Ladefenster zuerst geöffnet, wo ein Bild und eine Fortschrittsbar vorhanden sind. Wenn die ProgressBar die Datenbank lädt, beginnt die Stufe "Ladeansicht" und das Arbeitsfenster wird geöffnet. Nachdem das Arbeitsfenster geladen wurde, schließt der erste und Sie können mit der Arbeit beginnen (klingt verrückt, müssen Sie zugeben). /> UI: Ja. Wenn Sie zusätzliche Daten benötigen, fragen Sie, ich werde antworten.
Wenn Sie mehr Code benötigen oder Fragen haben, lassen Sie es mich wissen
Code: Select all
ClassInitialize class creation method created a conclusion. System.InvalidOperationException: System.InvalidOperationException: Access is denied
Wenn die Anwendung startet, wird das Ladefenster zuerst geöffnet, wo ein Bild und eine Fortschrittsbar vorhanden sind. Wenn die ProgressBar die Datenbank lädt, beginnt die Stufe "Ladeansicht" und das Arbeitsfenster wird geöffnet. Nachdem das Arbeitsfenster geladen wurde, schließt der erste und Sie können mit der Arbeit beginnen (klingt verrückt, müssen Sie zugeben). /> UI: Ja. Wenn Sie zusätzliche Daten benötigen, fragen Sie, ich werde antworten.
Code: Select all
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", SwiftAppId);
appCapabilities.SetCapability("platformName", "Windows");
session = new WindowsDriver(new Uri(WindowsApplicationDriverUrl), appCapabilities, TimeSpan.FromSeconds(90));
Assert.IsNotNull(session);
Assert.IsNotNull(session.SessionId);
int initialWindowCount = session.WindowHandles.Count;
WebDriverWait wait = new WebDriverWait(session, TimeSpan.FromSeconds(60));
string newWindowHandle = wait.Until(driver =>
{
var currentWindowHandles = session.WindowHandles;
if (currentWindowHandles.Count > initialWindowCount)
{
foreach (var window in currentWindowHandles)
{
try
{
session.SwitchTo().Window(window);
var title = session.Title;
if (title.Contains("Swift"))
{
return window;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
return null;
});
if (session.WindowHandles.Contains(newWindowHandle))
{
try
{
session.SwitchTo().Window(newWindowHandle);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
else
{
Assert.Fail("Window is closed");
}
session.FindElementByAccessibilityId("File").SafeClick(session); (Error occurs here)