2014-09-29 63 views
0

我有一个应用程序,被许多用户访问。它是一个.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 

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

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

所以:

  1. 我有一个网站,访问第三个网站。
  2. 我需要自动执行此过程。
  3. 用户只能点击链接,等待新的浏览器窗口打开,等待一些字段被自动填充,然后填写验证码并按“继续”,然后享受他们的浏览器工作。

硒可能吗?如果不是,哪个框架或我该如何实现?

让我知道是否需要任何进一步的细节。

回答

0

如果您不需要向用户显示浏览器,您可以在您的web应用程序上运行selenium的web应用程序中添加一个链接。这样你只需要安装并运行在托管web应用程序的web服务器上运行的selenium,而不是所有的最终用户机器。如果你这样做,你应该使用HtmlUnitDriver,因为它没有头,你真的不会看这些硒测试执行。

+0

感谢您的回复!问题是我需要用户与有验证码的第一个屏幕进行交互。 – 2014-09-29 20:21:37