我正在尝试使用带有Selenium WebDriver和Java的POM来编写代码来验证网页(测试表格包含3个必填字段firstname,lastname,phone和2个按钮提交和清除表单)。
这是我到目前为止编写的代码。我想确认一下我是否会以正确的方式前进。
public class TestForm {
WebDriver driver;
By firstName=By.id("fname");
By lastName=By.id("lname");
By phoneno=By.id("phone");
By submit=By.id("submit");
By clearForm=By.xpath("//tagname[@type='button']");
public TestForm(WebDriver driver)
{
this.driver=driver;
}
public void typeFirstName(String fname)
{
driver.findElement(firstName).sendKeys(fname);
}
public void typeLastName(String lname)
{
driver.findElement(lastName).sendKeys(lname);
}
public void typePhone(String phone)
{
driver.findElement(phoneno).sendKeys(phone);
}
public void clickSubmit()
{
driver.findElement(submit).click();
}
public void clickClearForm()
{
driver.findElement(clearForm).click();
}
}
public class VerifyTestForm {
@Test
public void verifyValidTestForm()
{
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("url of the application");
TestForm form=new TestForm(driver);
form.typeFirstName("John");
form.typeLastName("Adams");
form.typePhone("1234567890");
form.clickSubmit();
form.clickClearForm();
driver.quit();
}
}
答案 0 :(得分:0)
大多数代码看起来不错,但以下项目除外:
1)clearForm = By.xpath(“// tagname [@ type ='button']”);
tagname
应该是正确的标记,例如button
或'输入'
2)点击“提交”后,页面仍保留在表单页面中,如果是这样,请致电clickClearForm
。
form.clickSubmit();
form.clickClearForm();
3)您的代码中没有任何检查点/验证,所有都在页面上进行操作。
//假设点击Submit
按钮后会打开一个新页面
//如果它会改变,你需要检查由检查页面标题打开的新页面
//或检查属于新页面的元素是否显示
Assert(driver.getTitle()).toEqual('xxx')
Assert(driver.findElement(xxx).isDisplay()).toBe(true)
// above code may not exact correct, dependent on you choose Junit, TestNG
// or third-party Assert library.
// After click `Clear/Reset` button, you should check all fields reset to default value
Assert(form.readFirstName()).toEqual("")
4)对于测试类名称VerifyTestForm
,最好使用Test
开始或结束,例如Testxxx
或xxxTest
答案 1 :(得分:0)
由于您的代码是正确的,但这不是实现Page对象模型的方法。
页面对象模型通常表示,我们必须将正在使用的每个模块制作成单独的页面,并返回最后一页的引用。