在网站上使用selenium的自动化任务

时间:2014-09-29 18:54:30

标签: c# asp.net selenium selenium-webdriver selenium-grid

我有一个许多用户都可以访问的应用程序。它是一个.net 4.0 C#Web表单应用程序,他们要求我自动完成他们几乎每天都要做的任务。我应该自动化的任务是访问我的域外的链接,并填写一些信息,登录和其他东西,如日期。

因此,经过多次研究和阅读,我已经成功地在Selenium进行了本地化。我将整个过程自动化,并通过我网站内的链接调用它。在本地,它就像一个魅力。

以下是代码:

public void AutomateTask()
{
    var url = new Uri("http://127.0.0.1:4545/wd/hub");
    var capability = DesiredCapabilities.Chrome();
    var driver = new RemoteWebDriver(url, capability);

    driver.Navigate().GoToUrl("url");

    //do all the stuff I need to do

    driver.Close();
}

我使用此命令启动服务器:

java -jar C:\...\selenium-server-standalone-2.43.1.jar -role hub -port 4545

主要问题是我必须为用户发布我的网站,他们应该能够使用自动化流程而无需在他们的机器或其他任何东西上启动selenium节点。在本地我有一个节点为每个浏览器运行,他们是否可以使用这个webdrivers?我的意思是,用户不应该担心安装或任何事情,他们应该只需点击链接,看看他们的浏览器在任务结束前一直在行动。当我在另一台计算机上单击我的应用程序上的链接(从我的本地IIS)时,将在服务器计算机上打开请求浏览器的新窗口,而不是在单击该链接的计算机上打开。

我到处寻找解决方案,但没有找到。

所以:

  1. 我有一个访问第三个网站的网站。
  2. 我需要自动化这个过程。
  3. 用户只需点击链接,等待新浏览器窗口打开,等待某些字段自动填充,然后填写验证码并按“继续”,然后享受浏览器的工作。
  4. 硒有可能吗?如果没有,哪个框架或我如何实现这一目标?

    如果需要进一步的详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

如果您不需要向用户显示浏览器,您可以在您的webapp上放置一个链接,该链接在托管您的webapp的计算机上运行selenium。这样,您只需要在托管您的webapp的Web服务器上安装并运行selenium,而不是所有最终用户计算机。如果你这样做,你可能应该使用HtmlUnitDriver,因为它无头,你真的不会看着这些selenium测试执行。