【发布时间】: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