关于使用Eclipse和/或不使用Maven设置Selenium项目

时间:2013-10-31 15:23:25

标签: java selenium webdriver

我是一个完全的初学者,只是尝试创建一个Selenium Webdriver项目,我认为使用ChromeDriver或HTMLUnitDriver。请告诉我如果我是对的。我已经读过设置Selenium Webdriver项目,我可以通过在netbeans中创建Maven项目,并配置pom.xml文件来下载依赖项。但我真的不知道从哪里开始,或者如何正确配置Maven。

这让我觉得...... Maven是强制性的吗?要创建一个Selenium项目,我必须要处理Maven?可以只下载库(http://www.seleniumhq.org/download/)并将它们包含到“全局库”部分,然后将库添加到项目“libraries”文件夹中,并使用import子句来使用一个或另一个包?

2 个答案:

答案 0 :(得分:2)

大!很高兴看到Selenium WebDriver的另一位初学者!我想推荐一个可以帮助您入门的项目。

您可以下载here,或从github查看here

不需要使用Maven,但 IS 强烈建议使用某种依赖管理软件,如Maven,Ant或其他。 为什么?因为说你有一个jar文件,而且你有多个贡献者。这些贡献者将如何获得依赖?他们必须自己下载jar吗?你怎么知道他们下载了正确的版本?!

我刚刚给你的硒开始项目是一个我已经工作了一段时间的个人项目,它有我希望所拥有的东西我开始使用Selenium 2 WebDriver和Java。它还使用了我在现实生活中使用真实回归系统实现的概念。

既然你是新手,你可能已经注意到了各种使用driver.findElement(blah).click()的例子以及各种丑陋的东西。这个框架特别通过提供方法(你可以流利地调用)来抽象你所有的困惑。

这个项目实际上确实使用maven,你可以看到maven如何与Java一起工作的活跃示例,以及jUnit提供一个很好的框架。

以下是框架中包含的示例 -

/**
 * This is a sample test that can get you started.
 * <br><br>
 * This test shows how you can use the concept of "method chaining" to create successful, and independent tests, as well as the validations method that can get you started.
 * @author ddavison
 *
 */

@Config(url = "http://ddavison.github.io/tests/getting-started-with-selenium.htm", browser = Browser.FIREFOX) // You are able to specify a "base url" for your test, from which you will test. You may leave `browser` blank.
public class SampleFunctionalTest extends AutomationTest {

    /**
     * You are able to fire this test right up and see it in action.  Right click the test() method, and click "Run As... jUnit test".
     * 
     * The purpose of this is to show you how you can continue testing, just by taking the semi colon out, and continuing with your test.
     */
    @Test
    public void test() {

            // click / validateAttribute
        click(props.get("click"))
        .validateAttribute(props.get("click"), "class", "success") // validate that the class indeed added.

        // setText / validateText
        .setText(By.id("setTextField"), "woot!")
        .validateText(By.id("setTextField"), "woot!") // validates that it indeed set.

        // check / uncheck
        .check(By.id("checkbox"))
        .validateChecked(By.id("checkbox")) // validate that it checked

        .check(props.get("radio.2")) // remember that props come from <class name>.properties, and are always CSS selectors. (why use anything else, honestly.)
        .validateUnchecked(props.get("radio.1")) // since radio 1 was selected by default, check the second one, then validate that the first radio is no longer checked.

        // select from dropdowns.
        .selectOptionByText(By.xpath("//select[@id='select']"), "Second") // just as a proof of concept that you can select on anything. But don't use xpath!!
        .validateText(By.id("select"), "2") // validateText() will actually return the value="" attr of a dropdown, so that's why 2 works but "Second" will not.

        .selectOptionByValue(By.cssSelector("select#select"), "3")
        .validateText(props.get("select"), "3")

        // frames
        .switchToFrame("frame") // the id="frame"
        .validatePresent(By.cssSelector("div#frame_content"))

        // windows
        .switchToWindow("Getting Started with Selenium") // switch back to the test window.
        .click(By.linkText("Open a new tab / window"))
        .waitForWindow("Google") // waits for the url.  Can also be the you are expecting. :) (regex enabled too)
        .setText(By.name("q"), "google!")
        .closeWindow(); // we've closed google, and back on the getting started with selenium page.

    }
}

简单!没有?如果您确实需要有关此框架的帮助,我可以帮助您。

答案 1 :(得分:1)

  

Maven是强制性的吗?

没有!它不是

  

可以只下载库并包含它们吗?

是的,这是可能的!

Maven会做同样的事情! (简化)它创建了一个包含所有jar的库,并将其添加到您的项目中。