我面临的问题是 1.浏览器启动并且登录操作加快,此后浏览器再次尝试打开主页。 2.我想知道这是否是编写selenium测试脚本的正确方法
如果我删除步骤1并在步骤2中包含登录方法,我的测试运行正常 我在grails上的groovy上使用selenium-rc和STS
一个类中的代码
void candidatelogin() {
selenium.open("/jeepnee/")
selenium.click("link=Login")
selenium.type("id=username", "csv_candidate4@trashmail.net")
selenium.type("id=j_password", "kanishka1")
selenium.click("id=submit")
selenium.waitForPageToLoad("60000")
}
上面的部分我从下面的代码中调用
class CandidateEditProfileInfoFunctionalTests extends GroovyTestCase{
public String addressone="nejshdgfbvxczaqwer1y2io3lkjh7dg*lakiqwerjshag"
@BeforeClass
static void setUp() {
GeneralTests candidate= new GeneralTests()
candidate.candidatelogin()
}
void EditProfileInfoFail(String streeta, String streetb, String city, String state, String zip, String mobilecountry, String mobilearea, String mobilephone, String landlinecountry, String landlinearea, String landlinenumber) {
selenium.waitForPageToLoad("60000")
selenium.click("link=My Profile")
selenium.waitForPageToLoad("80000")
selenium.click("id=editProfile")
selenium.waitForPageToLoad("80000")
selenium.type("id=street1", streeta)
selenium.type("id=street2", streetb)
selenium.type("id=city", city)
selenium.type("id=state", state)
selenium.type("id=zip", zip)
selenium.select("id=country", "label=Philippines")
selenium.type("id=mobileCountryCode", mobilecountry)
selenium.type("id=mobileAreaCode", mobilearea)
selenium.type("id=mobilePhoneNumber", mobilephone)
selenium.type("id=landlineCountryCode", landlinecountry)
selenium.type("id=landlineAreaCode", landlinearea)
selenium.type("id=landlinePhoneNumber", landlinenumber)
selenium.click("id=submit")
selenium.waitForPageToLoad("80000")
assertTrue(selenium.isTextPresent("Please complete the required fields"))
assertEquals("Candidate Creation - Step 2", selenium.getTitle())
}
@Test
void homeCountryOnFailureShowsErrorMessage(){
EditProfileInfoFail(addressone, "aaa", "bangalote", "karnataka", "1234", "11", "222", "12345", "11", "22", "5432")
}
}
答案 0 :(得分:1)
你的@BeforeClass方法中是否有任何重复的逻辑?该方法运行一次,以设置所有测试方法所需的任何依赖项。听起来这个方法中的逻辑在步骤2中有些重复。似乎可以删除步骤2中打开主页的代码,因为它发生在@BeforeClass方法中。如果您的后续测试需要返回到HomePage,最好更改为@Before注释,然后在每次测试运行之前运行该代码。