Selenium:关闭对话框

时间:2016-02-19 15:05:47

标签: c# selenium

我正在尝试关闭对话框但没有成功。

假设我有下一组:

https://www.facebook.com/kidsmovie/?fref=ts

(请先登录facebook)。

1)点击“在此页面上写点东西......”

2)点击相机的照片:

enter image description here

(对话框将被打开)。

添加图像后如何关闭此对话框?

我已添加图片:

driver.FindElement(By.XPath("//span[text()='Add photo']/following-
sibling::div/input")).SendKeys(@"D:\myImage.png");

我试过了:

try {    
    Actions action = new Actions(driver);

    action.KeyDown(OpenQA.Selenium.Keys.Alt);
    action.SendKeys(OpenQA.Selenium.Keys.F4);
}
catch (Exception ex){}


try {
    IAlert a = driver.SwitchTo().Alert();
    a.Dismiss(); // or dismiss() if you want to hit 'cancel'
}
catch (Exception ex){}

try {
    Actions action = new Actions(driver);
    action.KeyDown(OpenQA.Selenium.Keys.Escape);
    action.Perform();
}
catch (Exception ex){}

我不知道它是否重要,但可以通过Escapealt + F4关闭对话框。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

尝试按照代码关闭对话框。

 [DllImport("user32.dll")]
    public static extern bool SetForegroundWindow(IntPtr hWnd);

    [DllImport("user32.dll")]
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);


    private static void CloseDialog()
    {
        var handle = FindWindow(null, "Give your window caption/title here");
        SetForegroundWindow(handle);
//send alt+f4 using sendkeys method
        System.Windows.Forms.SendKeys.SendWait("%{F4}");
    }

如果有任何问题,请告诉我。 感谢。