我是一名试图学习GEB和Spock的手动测试员。要了解这些,我必须事先了解java或groovy吗?我一直在阅读GEB的书,先决条件,书籍或学习资源是什么?请帮忙。谢谢。
我尝试编写一些必需品和一些“好吃的东西”,当我拿起Geb时,我发现它非常有用。
比如,你有一个带有输入文本框的注册表单,其id为“nametext”。你如何得到文本框的句柄?在DOM术语中,在javascript中,你只需要做一个
document.getElementById("nametext")
在Selenium,你会做一个非常相似的事情
driver.findElement(By.id("nametext"))
所以,如果你想在Selenium的文本框中填充Jason
,你会做一个
driver.findElement(By.id("nametext")).sendKeys("Jason");
如果您为所有输入字段执行此操作,很快您的测试用例就会变得丑陋和讨厌。而不是那样,在OO术语中,你封装了。你创建一个新的类,比如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","[email protected]");
(更好的想法是将输入值包装到类中并将其传递给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 ("[email protected]")