【问题标题】:Using C# to automate a process that involves other website使用 C# 自动化涉及其他网站的流程
【发布时间】:2014-11-17 16:06:52
【问题描述】:

我在 asp.net 4.0 中有一个 Web 应用程序,有时我必须访问我的域外的链接并用一些信息、登录信息和其他内容(如日期)填充它。我想自动化这个过程。

这就是我想要的:

用户单击一个按钮,指向另一个站点的链接在一个新选项卡上打开,其中的文本框填充了我的应用程序中的信息。用户通知验证码并按“继续”。该网站将验证信息并让他登录,然后在登录时会有更多类似的步骤。

我尝试过的:

我的应用上的 Iframe - 无法访问其中的 DOM 元素。

使用 javascript - 类似:

var window = window.open("site"); 
window.getElementById(""); 

但还是没有成功。

最后我尝试了 Selenium,它是一个用于自动化测试的框架,我想执行任务,而不是测试。我让它与 selenium 一起工作,实际上它就像一个魅力。

代码:

            var browser = Request.Browser;

            IWebDriver driver = null;
            switch (browser.Browser)
            {
                case "Chrome":
                    driver = new ChromeDriver(Server.MapPath("path"));
                    break;
                default:
                    driver = new FirefoxDriver();
                    break;
            }

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

            IWebElement field = driver.FindElement(By.Id("fieldId"));
            field .SendKeys("info i want to send");
            ...

问题是我必须发布我的应用程序,因为我有很多用户在使用它(这是我试图自动化这个过程的主要原因)。当我将它发布到本地 IIS 进行测试时,它停止工作,我不知道该做什么或搜索什么。任何帮助将不胜感激,在此先感谢。

【问题讨论】:

  • 那么“停止工作”是什么意思?你得到什么错误?我们真的无法帮助“它停止工作”。
  • 我没有收到任何错误,它只是没有打开浏览器窗口,也没有像在 VS Debug 上那样运行驱动程序。或者它同时运行浏览器和驱动程序背景,这不是我想要的。
  • 您尝试执行的操作听起来与恶意软件尝试执行的操作非常相似,因此您正在与一些非常好的安全机制作斗争。您是否尝试过与外部域所有者交谈?也许它们公开了一个您可以使用的 API,这是应用程序相互通信的典型方式。

标签: c# html asp.net selenium ui-automation


【解决方案1】:

我已经设法找到了这个非常相似的问题的解决方案:

Can we run Selenium WebDriver Test case with IIS, instead of Visual Studio Development server

为了使它工作,我需要按照这两个步骤创建一个 RemoteWebDriverServer。 你可以在这里找到更多信息:Selenium RC info

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    相关资源
    最近更新 更多