硒批判 [英] Selenium Critique
问题描述
我只是想从运行Selenium的人那里得到一些意见( http://selenium.openqa.org )我在WaTiN上有很多经验,甚至为它编写了一个录音套件.我让它产生一些结构良好的代码,但仅由我自己维护,似乎我的公司几乎放弃了它.
I just wanted some opinions from people that have run Selenium (http://selenium.openqa.org) I have had a lot of experience with WaTiN and even wrote a recording suite for it. I had it producing some well-structured code but being only maintained by me it seems my company all but abandoned it.
如果您使用过硒,您是否取得了很多成功?
If you have run selenium have you had a lot of success?
我将使用.NET 3.5,Selenium是否可以正常使用?
I will be using .NET 3.5, does Selenium work well with it?
代码产生的是干净的还是仅仅是所有交互的列表? ( http://blogs.conchango.com/richardgriffin/archive/2006/11/14/Testing-Design-Pattern-for-using-WATiR_2F00_N.aspx )
Is the code produced clean or simply a list of all the interaction? (http://blogs.conchango.com/richardgriffin/archive/2006/11/14/Testing-Design-Pattern-for-using-WATiR_2F00_N.aspx)
分布式测试套件的公平性如何?
How well does the distributed testing suite fair?
对该系统的任何其他困扰或赞美将不胜感激!
Any other gripes or compliments on the system would be greatly appreciated!
推荐答案
如果您使用的是 Selenium IDE 生成代码,然后您将获得硒将执行的每个动作的列表.对我来说,Selenium IDE是启动或进行快速的尝试一下"测试的好方法.但是,在考虑可维护性和可读性更高的代码时,必须编写自己的代码.
If you are using Selenium IDE to generate code, then you just get a list of every action that selenium will execute. To me, Selenium IDE is a good way to start or do a fast "try and see" test. But, when you think about maintainability and more readable code, you must write your own code.
获得良好的硒代码的一种好方法是使用页面对象模式,使代码代表您的导航流程.这是一个很好的示例,我在
A good way to achieve good selenium code is to use the Page Object Pattern in a way that the code represents your navigation flow. Here is a good example that I see in Coding Dojo Floripa (from Brazil):
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);
}
}
希望有帮助
这篇关于硒批判的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!