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

本文关键字:一个 启动 单元测试 selenium 按钮 MVC | 更新日期: 2023-09-27 18:04:58

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

我已经能够使用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>

我曾尝试将"a"改为"input"甚至"Submit",但不幸的是,这也没有让我走得很远。

我一直在寻找这个答案几天(不一定运行硒,但更多的只是运行一个按钮点击事件的动作)。

任何帮助,这将是非常感谢,——沃尔克

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

我用下面的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();
    }

与索引。CSHTML有如下代码:

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

我改变了randNumber到我的硒代码,它工作。