- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果之前有人问过这个问题,但我无法在谷歌上找到答案,我深表歉意。
我正在为每个浏览器寻找一个测试插件,我可以在其中简单地记录一个测试(点击各种东西),然后只需点击“运行测试”就可以运行这个测试。如果我能写一些关于我需要什么样的答案的代码(即生成最终的 html),那是最好的,但如果可能的话就没问题。
我不能使用 JUnit 等东西的原因是因为我的代码使用了外部网络服务(例如在外部服务器上支付,我无法访问)并且在测试期间我被重定向到不同的页面,所以我认为它必须是一个测试插件。
如果插件可以与 Visual Studio 2010(或至少是 IE 插件)集成,那就太棒了,但我可以没有它。
我正在阅读 iMacros(Chrome,但不幸的是测试版)和 Selenium(Firefox),但我想知道最标准的方法是什么(我假设它已经完成了很长时间)。另外我需要一个用于 IE9 的,我还没有找到。
提前致谢,约瑟夫
附言。我创建了 AJAX 繁重的网页,所以简单的基于 URL 的测试是不够的(比如 AdobeBrowser 实验室)
最佳答案
Selenium非常适合网络浏览器自动化测试,最新版本适用于几乎所有版本的 IE (7 - 9)(我目前无法查看工作文档)和 Firefox 3 - 8,以及 Chrome 12 以上版本。
selenium 网站和 http://code.google.com/p/selenium/ 上有一些很好的例子网站也是。
(对于 Chrome 浏览器,您还需要下载 ChromeiumServer
这是我前一段时间弄乱的一些粗略的现成源代码
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Remote;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
const string Path = @"H:\Selenium\chromedriver_win_16.0.902.0\";
static void Main(string[] args)
{
TestMethodChromeViaServer();
WebBrowser(TestMethodFf());
WebBrowser(TestMethodIe());
WebBrowser(TestMethodChromeDefault());
}
/// <summary>
/// Runs the code in the browser.
/// </summary>
/// <param name="webDriver">The Web Driver to use to initiate a web browser.</param>
public static void WebBrowser(IWebDriver webDriver)
{
webDriver.Navigate().GoToUrl("http://nerddinner.com/Account/LogOn?returnUrl=%2F#");
IWebElement query = webDriver.FindElement(By.Id("UserName"));
query.Submit();
var foo = webDriver.FindElement(By.CssSelector("span[for='UserName']"));
webDriver.Quit();
}
/// <summary>
/// Launches Google Chrome via the service so multiple tests can be run before closing the service.
/// </summary>
public static void TestMethodChromeViaServer()
{
var service = ChromeDriverService.CreateDefaultService(Path);
service.Start();
IWebDriver driver = new RemoteWebDriver(service.ServiceUrl, DesiredCapabilities.Chrome());
WebBrowser(driver);
service.Dispose();
}
/// <summary>
/// Creates a Web Driver using Google Chrome.
/// </summary>
/// <returns>Web driver with ChromeDriver setup to the correct path.</returns>
public static IWebDriver TestMethodChromeDefault()
{
IWebDriver driver = new ChromeDriver(Path);
return driver;
}
/// <summary>
/// Creates a Web Driver using Firefox.
/// </summary>
/// <returns>Web driver with FirefoxDriver profile setup.</returns>
public static IWebDriver TestMethodFf()
{
var foxProfile = new FirefoxProfile
{
AcceptUntrustedCertificates = true
};
IWebDriver driver = new FirefoxDriver(foxProfile);
return driver;
}
/// <summary>
/// Creates a Web Driver using Internet Explorer.
/// </summary>
/// <returns>Web driver with InternetExplorerDriver setup.</returns>
public static IWebDriver TestMethodIe()
{
//// Must set the protected mode on each zone to be the same (on or off), under tools -> security tab
IWebDriver driver = new InternetExplorerDriver();
return driver;
}
}
}
关于IE 9/OF/Chrome Javascript/JQuery 浏览器测试框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8120287/
我是一名优秀的程序员,十分优秀!