Winforms 与应用程序中的另一个窗口交互

Winforms 与应用程序中的另一个窗口交互,winforms,appium,winappdriver,Winforms,Appium,Winappdriver,我有一个带有button的简单应用程序,它显示了另一个带有ShowDialog()方法的表单。我想在此打开的表单中单击“关闭”按钮,但调用Session.FindElementByName(“关闭”)将尝试从第一个表单中单击“关闭”按钮,但失败(因为另一个表单是使用ShowDialog()打开的) 有什么建议可以让我换成这个新的表格吗 切换到似乎不起作用。 在ShowDialog()调用之后的会话中有两个窗口句柄,但切换似乎不起作用 [TestMethod] public voi

我有一个带有button的简单应用程序,它显示了另一个带有ShowDialog()方法的表单。我想在此打开的表单中单击“关闭”按钮,但调用Session.FindElementByName(“关闭”)将尝试从第一个表单中单击“关闭”按钮,但失败(因为另一个表单是使用ShowDialog()打开的)

有什么建议可以让我换成这个新的表格吗

切换到似乎不起作用。 在ShowDialog()调用之后的会话中有两个窗口句柄,但切换似乎不起作用

    [TestMethod]
    public void AppDriverTest_Close_Another_Window()
    {
        Session.FindElementByAccessibilityId("button1").Click();
        Session.FindElementByName("Close").Click();
    }

    // Form1 has button with following click method
    private void button1_Click(object sender, EventArgs e)
    {
        var frm = new Form2();
        frm.ShowDialog();
    }

通过将整个“路径”添加到“关闭”按钮来实现此功能:

 Session.FindElementByAccessibilityId("Form2").FindElementByName("Close").Click();

你能分享你的代码一次吗?您是否也尝试过alert或frame switch?也尝试过,但它仍然没有关闭Form2:Session.FindElementByAccessibilityId(“button1”)。单击();Session.SwitchTo().Window(Session.WindowHandles[1]);Session.FindElementByName(“关闭”)。单击();。如果希望这两个窗体可以访问并能够在它们之间切换,请改用
.Show()
。是否有办法找到活动对话框并单击其关闭按钮?是否尝试了上下文切换?