我是一个尝试学习GEB和Spock的手工测试人员。要学习这些,我是否必须具备java或groovy的先验知识?我一直在读GEB的书,前提条件是什么,书或学习资源是什么?请帮帮忙。谢谢。
发布于 2013-01-10 09:54:11
我试着编译了一些必备要素和一些“好东西”,当我开始使用Geb时,我发现它们非常有帮助。
假设你有一个注册表单,输入文本框的id是"nametext“。如何获得textbox的句柄?在DOM术语中,在javascript中,您只需执行
document.getElementById("nametext")在Selenium中,您会做非常类似的事情。
driver.findElement(By.id("nametext"))因此,如果您希望在Selenium的文本框中填充Jason,您将执行
driver.findElement(By.id("nametext")).sendKeys("Jason"); 如果你对所有的输入域都这样做,你的测试用例很快就会变得丑陋可恶。而不是这样,用面向对象的术语来说,你封装了。创建一个新类,命名为RegistrationPage,并将您的findElement和sendKeys包装为:
public class RegistrationPage{
…
public RegistrationPage fillRegistrationForm(String name, String email){
driver.findElement(By.id("nametext")).sendKeys(name);
driver.findElement(By.id("emailtext")).sendKeys(email);
}
}从你的测试案例中,你会说
RegistrationPage regPage=new RegistrationPage();
regPage.fillRegistrationForm("Jason","jason@bourne.com");(更好的想法是将输入值包装到一个类中,并将其传递给fillRegistrationForm)
事实上,Geb以一种更好的方式利用了PageObjects - jQuery选择器来拯救
class InputFormPage extends Page{
…
static content={
name {$("input", id:"entry_0")}
emailAddress {$("input", id:"entry_1")}
}
}在你的测试案例中,你会说
name.value ("Jason")
emailAddress.value ("jason@bourne.com")https://stackoverflow.com/questions/14249371
复制相似问题