CHAPS,
新手在这里请你温柔!
我有一个班级,我首先尝试确定'如果'文本 “虚拟测试公司”在页面上存在,然后我想 点击并删除该公司'Else'我想添加一个新测试 公司..
我遇到的问题是:
if(verifyTrue(selenium.isTextPresent("Fictitious Test Company"))){;
编译器一直抱怨'方法verifyTrue(boolean)是 未定义类型Delete_old_Or_Add_New_Company'* /
你能告诉我哪里出错吗?请具体说明我需要做些什么来纠正这个问题。
以下是我班级的全部代码: - 我正在使用xml在Eclipse中运行我的testsuite
package Realtime;
import com.thoughtworks.selenium.*;
import org.testng.annotations.*;
import static org.testng.Assert.*;
public class Delete_old_Or_Add_New_Company {
private Selenium selenium;
public static SeleneseTestBase SV = new
SeleneseTestBase();
@BeforeClass
@Parameters ({"url","browser","speed"})
public void startSelenium(String Site_URL, String Browser, String
Speed) {
selenium = new DefaultSelenium("localhost", 4444, Browser, Site_URL);
selenium.start();
selenium.setSpeed(Speed);
}
@AfterClass(alwaysRun=true)
public void stopSelenium() {
this.selenium.stop();
}
@Test
public void DeletOldOrAddNewCompany() throws Exception {
Login_Logout NewObject=new Login_Logout();
selenium.getEval("selenium.browserbot.setShouldHighlightElement(true)");
NewObject.Login(selenium);
selenium.waitForPageToLoad("5000");
selenium.click("//table[@id='maincontent']/tbody/tr/td[3]/table[2]/
tbody/tr[3]/td[5]/strong");
selenium.waitForPageToLoad("5000");
selenium.click("link=Companies");
selenium.waitForPageToLoad("5000");
selenium.click("//input[@value='Search for Companies']");
selenium.waitForPageToLoad("5000");
selenium.type("//input[@name=\"companyname\"]", "Fictitious Test
Company");
selenium.click("//input[@name=\"submitbutton\"]");
if(verifyTrue(selenium.isTextPresent("Fictitious Test Company"))){; /
* It is at this line the compiler complains that the 'The method
verifyTrue(boolean) is undefined for the type
Delete_old_Or_Add_New_Company' */
selenium.waitForPageToLoad("5000");
selenium.click("css=td.tablelastrownew");
selenium.waitForPageToLoad("5000");
selenium.click("//input[@value='Delete Company']");
assertTrue(selenium.getConfirmation().matches("^Note: This action
will delete all the companies accounts, branches, users and their
accounts\n\nAre you sure you wish to delete this company[\\s\\S]$"));
}
else {
selenium.click("//input[@value='Companies Admin Home']");
selenium.waitForPageToLoad("5000");
selenium.click("//input[@value='New Company']");
selenium.waitForPageToLoad("5000");
selenium.type("name=companyname", "Fictitious Test Company");
selenium.type("name=postcode", "SW17 8DY");
selenium.type("name=expirepasswordsindays", "1000");
selenium.click("css=input[name=\"submitbutton\"]");
selenium.waitForPageToLoad("5000");
SV.verifyTrue(selenium.isTextPresent("Fictitious Test Company"));
}
NewObject.Logout(selenium);
}
答案 0 :(得分:3)
编译器是正确的。您的班级中确实不存在verifyTrue
方法。您的类应该扩展SeleneseTestCase
,定义该方法。
答案 1 :(得分:1)
Java告诉你,verifyTrue独立存在,它不会返回一个值,因此它不需要包含if语句。
如果参数为false,则测试将失败,测试将在那里停止。
我认为在这种情况下你想要的是省略“verifyTrue”部分并将其中的内容传递给if。
答案 2 :(得分:0)
您已经创建了SeleneseTestBase实例“SV”。
你应该调用“SV.verifyTrue”。或者,扩展SeleneseTestBase。
*你已经用过这种方式了。(或者说句是最后一行。)
SV.verifyTrue(selenium.isTextPresent("Fictitious Test Company"));
*在Selenium 2.0中,SeleneseTestCase已被弃用。 http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/package-summary.html