当前位置: 首页 > 面试题库 >

selenium批判

楚硕
2023-03-14
问题内容

我只是想从运行Selenium(http://selenium.openqa.org)的人们那里获得一些意见,我在WaTiN上有很多经验,甚至为此编写了一个录音套件。我让它产生一些结构良好的代码,但仅由我自己维护,似乎我的公司几乎放弃了它。

如果您使用过selenium,您是否取得了很多成功?

我将使用.NET 3.5,Selenium是否可以正常使用?

代码是干净的还是仅仅是所有交互的列表?(http://blogs.conchango.com/richardgriffin/archive/2006/11/14/Testing-
Design-Pattern-for-using-
WATiR_2F00_N.aspx

分布式测试套件的公平程度如何?

系统上的任何其他困扰或赞美将不胜感激!


问题答案:

如果您正在使用Selenium IDE生成代码,则只需获取selenium将执行的每个动作的列表。对我来说,Selenium
IDE是启动或进行快速的“尝试一下”测试的好方法。但是,当您考虑可维护性和可读性更高的代码时,必须编写自己的代码。

实现良好的硒代码的一种好方法是使用页面对象模式,使代码代表您的导航流程。这是我在Coding
Dojo Floripa(来自巴西)中看到的一个很好的例子:

public class GoogleTest {

    private Selenium selenium;

    @Before
    public void setUp() throws Exception {
            selenium = new DefaultSelenium("localhost", 4444, "*firefox",
                            "http://www.google.com/webhp?hl=en");
            selenium.start();
    }

    @Test
    public void codingDojoShouldBeInFirstPageOfResults() {
            GoogleHomePage home = new GoogleHomePage(selenium);
            GoogleSearchResults searchResults = home.searchFor("coding dojo");
            String firstEntry = searchResults.getResult(0);
            assertEquals("Coding Dojo Wiki: FrontPage", firstEntry);
    }

    @After
    public void tearDown() throws Exception {
            selenium.stop();
    }

}


public class GoogleHomePage {

    private final Selenium selenium;

    public GoogleHomePage(Selenium selenium) {
            this.selenium = selenium;
            this.selenium.open("http://www.google.com/webhp?hl=en");
            if (!"Google".equals(selenium.getTitle())) {
                    throw new IllegalStateException("Not the Google Home Page");
            }
    }

    public GoogleSearchResults searchFor(String string) {
            selenium.type("q", string);
            selenium.click("btnG");
            selenium.waitForPageToLoad("5000");
            return new GoogleSearchResults(string, selenium);
    }
}

public class GoogleSearchResults {

    private final Selenium selenium;

    public GoogleSearchResults(String string, Selenium selenium) {
            this.selenium = selenium;
            if (!(string + " - Google Search").equals(selenium.getTitle())) {
                    throw new IllegalStateException(
                                    "This is not the Google Results Page");
            }
    }

    public String getResult(int i) {
            String nameXPath = "xpath=id('res')/div[1]/div[" + (i + 1) + "]/h2/a";
            return selenium.getText(nameXPath);
    }
}

希望有帮助



 类似资料:
  • 介绍 正如你在 Selenium 项目简史里读到的,Selenium RC 在很长一段时间内都是 Selenium 的主要项目,直到 WebDriver/Selenium 合并而产生了最新和最强大的 Selenium 2。 Selenium 仍然被活跃的支持(大部分是维护工作),并且提供了一些 Selenium 2 短期不会支持的特性,包括支持多语言 (Java, Javascript, Ruby

  • 是否有一种方法可以使用Selenium Grid来执行位于远程节点机器上的批处理文件以更改主机文件? VM1包含代码,并充当中心VM2运行Chrome节点VM3运行火狐节点VM4运行IE节点 每个VM上都存在一组批处理文件,但是,按原样运行时,只有VM1执行批处理文件。如何告诉Selenium在正确的节点上执行批处理文件? FWIW,我现在通过詹金斯执行任务。 最初编写代码时,我只是通过Eclip

  • 本文向大家介绍python Selenium实现付费音乐批量下载的实现方法,包括了python Selenium实现付费音乐批量下载的实现方法的使用技巧和注意事项,需要的朋友参考一下 必备环境 废话 每年回家都要帮我爸下些音乐,这对我来说都是轻车熟路!可当我打开网易云点击下载按钮的时候,可惜已物是人非啦! 开个 VIP 其实也不贵,临时用用也就¥15!但 IT 男的尊严必须要有,于是开始徜徉于搜索

  • 问题内容: 我已经使用Cucumber和Webrat已有一段时间了。现在,我需要开始编写涉及AJAX交互的行为,因此我正在考虑将Selenium适配器用于Webrat。谁能指出安装和配置selenium + webrat + cucumber的简便且更新的分步指南?我希望能够将javascript方案与非javascript方案混合使用。 问题答案: 我在项目上将Selenium与rspec结合使

  • 更改历史 * 2017-11-12 张会美 初始化文档 1 历史、现状和发展 Jason Huggins在2004年发起了Selenium项目,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中,幸运的是,所有被测试的浏览器都支持Javascript。Jason和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为;这个Java

  • Selenium (SeleniumHQ) 是 thoughtworks公司的一个集成测试的强大工具。 一、Selenium 的版本 Selenium 现在存在2个版本,一个叫 selenium-core, 一个叫selenium-rc 。 selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE只有 Fir