在Coded UI中,如何正确获取属性并断言?

时间:2015-02-09 18:45:00

标签: c# visual-studio coded-ui-tests

在Coded Ui测试中,我想使用以下代码验证应用程序中的消息:

public void AssinarNewsletter()
    {
        //BrowserWindow.CurrentBrowser = "chrome";
        BrowserWindow chrome = BrowserWindow.Launch("http://pp.psafe.com/");
        chrome.Maximized = true;

        UITestControl uIEmail = new UITestControl(chrome);
        uIEmail.TechnologyName = "Web";
        uIEmail.SearchProperties.Add("ControlType", "Edit");
        uIEmail.SearchProperties.Add("Id", "mce-EMAIL");
        Keyboard.SendKeys(uIEmail, "andre.mendes@peseife.com.br");

        UITestControl uICadastrar = new UITestControl(chrome);
        uICadastrar.TechnologyName = "Web";
        uICadastrar.SearchProperties.Add("ControlType", "Button");
        uICadastrar.SearchProperties.Add("Id", "mc-embedded-subscribe");
        Mouse.Click(uICadastrar);

        UITestControl uICadastrado = new UITestControl(chrome);
        uICadastrado.TechnologyName = "Web";
        uICadastrado.SearchProperties.Add("ControlType", "Pane");
        uICadastrado.SearchProperties.Add("Id", "mce-success-response");

        string displayed = (string)uICadastrado.GetProperty("InnerText");
        string expected = "Quase no final... Precisaamos confirmar o seu endereço de e-mail. Para concluir o processo de assinatura, clique no link existente no e-mail que acabamos de enviar para você.";

        if (displayed != expected)
        {
            Assert.Fail("A mensagem está incorreta");
        }

但是不知何故,我的测试通过时不应该。

以下是应用程序中的消息:

Newsletter-successful

1 个答案:

答案 0 :(得分:2)

添加延迟,例如

UITestControl uICadastrado = new UITestControl(chrome);
uICadastrado.WaitForControlReady(1000);//wait one second

放入断点然后通过打开测试资源管理器在调试中运行测试,右键单击测试用例并单击“在调试中运行”。

更改

if( displayed != expected )

if ( String.Equals(displayed , expected ) == false )

或者

if ( ! String.Equals(displayed , expected ) )