2011-04-27 50 views
0

不久前我开始使用webdriver。我的方法如下:我的webderiver方法

​​

现在,我的JUnit测试我有:

public class CreateCompanyGermany { 

    @Before 
    public void pagefactory() { 
    page = PageFactory.initElements(new InternetExplorerDriver(), PageObjectRepresentationClass.class); 
    page.open(url); 
    } 
    @After 
    public void closeBrowser(){ 
    page.close(); 
    } 
    @Test 
    public void internetApplying(){ 
    page.open(url); 
    page.chooseOptionFromDropDownMenuById("String", "String"); 
    page.fillInputFieldByName("String", "String"); 
    page.fillInputFieldByName("String", "String"); 
    page.chooseOptionFromDropDownMenuById("String", "String"); 
    // So from here on I'm just calling methods defined in PageObjectRepresentationClass 
} 

这是我使用的webdriver的方法。现在我想知道的是与Selenium 1相比,哪里应该受益?我的意思是,如果我的做法是正确的,就只从selenium2/webdriver的不同Selenium1是事实的webdriver一来可以使唯一的方法来处理页面,因此,而不是写

selenium.someMethod(); // derives from selenium API 

现在我将有

page.myMethod(); // in this particular case derives from PageObjectRepresentationClass 

至于维护代码问题,我没有看到任何好处,或者我做错了什么? 在此先感谢!

回答

0

Selenium 2对于testscripts的可维护性不会提供太多改进,尽管支持包中有一些类现在可用,您可以使用它们来实现PageObjects。

查看例如PageFactory类。

与硒2的最大区别在于它与浏览器通信的方式。 Selenium 1使用JavaScript服务器进行通信,而selenium2 Web驱动程序使用browserapi直接与浏览器进行通信。这有几个优点。

  1. 它会使测试运行快一点,因为他们没有经过你是不是必然的JavaScript 的 (安全)限制了一个javascript服务器
  2. 您不需要(但 仍可以使用) 执行脚本的服务器。