如何让按钮在MVC中启动新的selenium单元测试?

时间:2016-08-30 15:41:45

标签: c# asp.net-mvc selenium button

我的问题是标题所述;如何让按钮在MVC中启动新的selenium单元测试?我是MVC概念的新手,我想学习如何通过网页中的按钮开始测试以开始新的硒测试。现在的Selenium测试是在用户计算机上,但最终我想让它在虚拟机上启动。我现在只使用一个控制器" Home"我现在只在一页上尝试所有这些"索引"。

我已经能够使用Index.cshtml中的以下代码在页面加载时执行selenium任务:

<p> Testing: @SeleniumController.OpenBrowser()</p>

然后在我的HomeController.cs中我有以下代码(我知道直接从控制器调用片段不是一个好习惯,但我不确定如何以其他方式做到这一点):

public static string OpenBrowser()
    {
        IWebDriver driver = new ChromeDriver();
        driver.Navigate().GoToUrl("http://www.google.com");

        return driver.Title;
    }

我还有一个按钮,我无法弄清楚如何运行命令。我不熟悉Javascript,我一直在这里学习,但我仍然相当远。

以下是我的按钮代码:

<a class="btn btn-success" id="StartChrome">Start Chrome in Selenium &raquo;</a>

我尝试过更换它而不是&#34; a&#34;输入&#34;输入&#34;甚至&#34;提交&#34;但不幸的是,这并没有让我走得太远。

我几天来一直在寻找这个答案(不一定是运行selenium,而只是在按钮点击事件上运行动作)。

对此有任何帮助将非常感谢, - Volk

1 个答案:

答案 0 :(得分:0)

我使用以下AJAX代码完成了自己的工作。

    $("#btn1").click(function () {
    $.ajax({
        url: "/Home/RandNumber",
        datatype: "text",
        type: "POST",
        success: function (data) {
            $('#testarea').html(data);
        },
        error: function () {
            $("#testarea").html("ERROR");
        }
    });
});

在控制器功能中是:

[HttpPost]
    public string RandNumber()
    {
        Random rand = new Random();
        return rand.Next(0, 100).ToString();
    }

使用此代码的Index.cshtml:

<input id="btn1" type="button" class="btn btn-success" value="Load Random number &raquo;"/>

我将randNumber更改为我的selenium代码并且它有效。