一个可行的Selenium测试框架

老早就想写一些Selenium测试框架的搭建,但是时间和想法都不太成熟。今天 就大概粗略的和大家分享一下。

本文的背景假设读者有一定的selenium使用经验。

1.元素定位

大家都知道,网页这个东西在浏览器里展现出来的是一个完整的xml,所以可 以通过xml的访问方式,字符串查询,正则等来访问xml。

selenium支持的遍历模式有:

public class By
    {
        protected By();
        protected By(Func<ISearchContext, IWebElement> findElementMethod, Func<ISearchContext, ReadOnlyCollection<IWebElement>> findElementsMethod);

        public static bool operator !=(By one, By two);
        public static bool operator ==(By one, By two);

        protected string Description { get; set; }
        protected Func<ISearchContext, IWebElement> FindElementMethod { get; set; }
        protected Func<ISearchContext, ReadOnlyCollection<IWebElement>> FindElementsMethod { get; set; }

        public static By ClassName(string classNameToFind);
        public static By CssSelector(string cssSelectorToFind);
        public override bool Equals(object obj);
        public virtual IWebElement FindElement(ISearchContext context);
        public virtual ReadOnlyCollection<IWebElement> FindElements(ISearchContext context);
        public override int GetHashCode();
        public static By Id(string idToFind);
        public static By LinkText(string linkTextToFind);
        public static By Name(string nameToFind);
        public static By PartialLinkText(string partialLinkTextToFind);
        public static By TagName(string tagNameToFind);
        public override string ToString();
        public static By XPath(string xpathToFind);
    }

大家可以看到最后一个是通过xpath,其他的例如classname,cssselector等 估计也是通过xpath来实现的。大家可以去具体看看webdrvier实现的源码,验证 一下思想,如果后续有时间,我会剖析一下webdriver的源代码。

好了,有了xpath,就可以定位网页上的元素了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, static
, selenium
, override
, public
, protected
by
selenium测试框架、selenium测试框架搭建、selenium测试框架选择、selenium2测试框架、基于selenium测试框架,以便于您获取更多的相关知识。

时间: 2024-12-28 17:25:42

一个可行的Selenium测试框架的相关文章

《JavaScript忍者秘籍》——2.3 测试框架

2.3 测试框架 测试套件应该作为基本开发流程的一部分,所以应该选择一个非常适合自己代码风格和代码库的测试套件.一个JavaScript测试套件应该满足一个唯一需求:显示测试的结果,以便很容易地确定哪些测试通过的,哪些是失败的.测试框架可以帮助我们达到这一目标,除了创建测试并将其组织到测试套件中以外,不用再担心别的事情. 根据测试的需要,我们可以从JavaScript测试框架中找到很多功能.其中一些功能包括: 能够模拟浏览器行为(单击按键等). 测试的交互式控制(暂停和恢复测试). 处理异步测试

Selenium一款有名的Web应用程序测试框架

在本文中,我们将介绍如何轻松地从 Selenium 1 过渡到 Selenium 2,并用一些示例介绍如何使用 Selenium 2,如何进行远程测试,以及如何将书面测试从 Selenium 1 迁移到 Selenium 2 中. Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试. Selenium(以下简称为 Selenium 1)

WF4.0实战(五):实现一个直观易扩展的自动测试框架

概述: 这篇文章用WF实现一个软件自动测试框架,这个框架你可以随意扩展.本这个框架根据WF流程去自动地点击你的页面:自动的在你的文 本上输入值:自动的做一些人为的操作.也就是说WF相当于一个测试用户,自动地帮你测试软件.只需要你定制测试流程. 写一个待测试的软件: 这里我写了一个很简单的待测试的软件:一个加法运算.界面如下图,就一个Form. 后台代码如下: 1 public partial class MainForm : Form 2 { 3 public MainForm() 4 { 5

我用ssh三大框架编写完一个功能后,测试时出现了这个错误,求解。

问题描述 我用ssh三大框架编写完一个功能后,测试时出现了这个错误,求解. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [bean.xml]: Invocation of init method failed; nested exception is org.hiberna

如何使用Selenium测试工具对Ruby on Rails和Ajax应用程序进行功能测试

验收测试(也称功能测试)是用来测试手工任务的功能的,但是手工测试这些任务可能很花时间,并 且容易出现人为的错误.在本文中,作者为架构师.开发人员和测试人员展示了如何使用 Selenium 测试 工具来自动化验收测试.通过自动化测试,可以节省时间,并消除测试人员所犯的错误.文中还给出了一 个例子,以演示如何将 Selenium 应用到现实中使用 Ruby on Rails 和 Ajax 的项目上. Web 应 用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操

karma 测试框架的前世今生

这篇文章主要来自 karma 作者的一篇论文,主要是说 karma 的由来,通过这篇文章,可以了解下 karma 的设计思想,这样大家在做前端单元测试时,也能了然于心. 背景 JavaScript 作为 web 端使用最广泛的编程语言,它是动态语言,缺乏静态类型检查,所以在代码编译期间,很难发现像变量名写错,调用不存在的方法等错误,除非在运行时才能暴露出来,所以非常有必要有一个测试工具来验证你的代码. karma 就是在这样的背景下产生的, 它是一个 runner , 旨在帮助开发者简单而又快速

TestCafe 简介 — 开源测试框架

我们很高兴地宣布,DevExpress已经发布了TestCafe的核心库 - 我们的自动化浏览器测试工具 - 作为node.js的开源框架. 现在开源社区的每个人都可以从我们为商业版本开发的技术中受益. 问题 如果您是使用node.js工具的前端Web开发人员,那么您知道为您的Web应用程序设置自动的浏览器测试是多么困难. 首先,甚至安装测试框架可能是具有挑战性的. 大多数现有框架需要Selenium,它带来JDK和浏览器插件. (感谢XKCD: http://xkcd.com/1742/ )

Struts行为测试框架StrutsTestCase实战

阅读提要 StrutsTestCase是一个强有力的易于使用的针对Struts行为的测试框架.StrutsTestCase,并与传统型JUnit测试相结合,将会带给你一个相当高的测试覆盖率并提高你的产品的可靠性. 一.引言 StrutsTestCase是一个用于测试Struts行为的基于Junit的测试框架.如果你使用Struts,那么你会注意到它可以提供给你一种容易而有效的方式来测试你的应用程序的Struts行为类. 典型的J2EE应用程序都是分层构建的,如图1所示. ·DAO层封装了数据库存

一种轻量级、可重用、可扩展的OSGi应用程序测试框架

引言 OSGi 是一个基于 Java 的,提供动态模块加载和管理的运行时框架,在业界已经得到广泛应用.OSGi 框架使用 Bundle 把复杂的应用程序模块化.在 OSGi 的框架中,Bundle 的生命周期由 OSGi 运行环境进行管理:Bundle 之间以松耦合的形式相互依赖:Bundle 有严格的访问安全限制.但也正是由于以上这些特点,给测试这些 Bundle 带来了很大的困难.许多测试用例要求被测 Bundle 及其依赖的 Bundle 同时运行于 OSGi 环境中:同时若需将测试代码和