selenium批判

selenium批判,第1张

selenium批判

如果您正在使用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);    }}

希望有帮助



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4983227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存