C#-带有Selenium的MVC应用程序;在服务器上部署时无法工作

本文关键字:部署 工作 服务器 Selenium 带有 MVC 应用程序 C#- | 更新日期: 2023-09-27 18:00:44

我用C#+.NET-MVC制作了一个登录自动化应用程序。

我的应用程序在本地计算机上运行良好,并将所有内容保存在数据库中。

一旦我在本地机器上部署了我的应用程序,索引视图就会接收电子邮件和密码,将它们发送到数据库并保存。下一步用Selenium启动WebDriver(Firefox或Chrome在笔记本电脑上运行)。在这里,什么都没发生。它永远在本地主机上等待,Chrome和FF都会在一段时间后超时。

    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public ActionResult getInformation()
    {
        email = Request["getEmail"].ToString();
        password = Request["getPassword"].ToString();
        saveLogin();
        return RedirectToAction("gatherer");
    }
    public ActionResult gatherer()
    {
        facebookLogin();
        return null;
    }
    private static void facebookLogin()
    {
        chrome = new FirefoxDriver();
        chrome.Navigate().GoToUrl("http://facebook.com");
        chrome.FindElement(By.Id("email")).SendKeys(email);
        chrome.FindElement(By.Id("pass")).SendKeys(password);
        chrome.FindElement(By.Id("loginbutton")).Click();
    }

这很简单,它再次在我的本地计算机上运行。但是部署在服务器上的IIS上,它没有。换句话说:网络驱动程序永远不会打开。

C#-带有Selenium的MVC应用程序;在服务器上部署时无法工作

首先需要从更改

chrome = new FirefoxDriver();

DesiredCapabilities capability = DesiredCapabilities.Firefox();
Uri url = new Uri("http://REMOTE_IP:5050/wd/hub");
IWebDriver chrome = new RemoteWebDriver(url, capability);

然后下载Selenium Standalone服务器,并使用命令提示符使用启动它

java -jar C:'selenium-server-standalone-2.24.1.jar -interactive -port 5050