2012-12-15 50 views
1

我试图运行下面的代码,但徒劳。硒 - jUnit4

由于“硒无法解析”,代码不会编译并报错。 任何人都可以看看下面的代码 -

package com.example.tests; 

import com.thoughtworks.selenium.*; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import java.util.regex.Pattern; 

public class prashantk { 
    @Before 
    public void setUp() throws Exception { 
     selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://book.theautomatedtester.co.uk/"); 
     selenium.start(); 
    } 

    @Test 
    public void testAuto_1() throws Exception { 
     selenium.open("/chapter2"); 
     verifyEquals("Button with name", selenium.getValue("name=but2")); 
     verifyEquals("chocolate", selenium.getValue("xpath=(//input[@name='verifybutton'])[2]")); 
     selenium.click("link=Index"); 
     selenium.waitForPageToLoad("60000"); 
     verifyTrue(selenium.isTextPresent("Chapter4")); 
    } 

    @After 
    public void tearDown() throws Exception { 
     selenium.stop(); 
    } 
} 

回答

4

你有一个名为selenium字段引用,但没有定义这样的字段。

某处在您的课,大概就只是@Before前行,你要添加这个字段:

Selenium selenium; 
从评论

显然还没有verifyEqualsverifyTrue在你的代码中引用的方法。这些方法在一个基类SeleneseTestCase其中定义了测试应该延伸:

public class prashantk extends SeleneseTestCase { 
+0

谢谢不要这样做。但是另一个问题在我用过“验证人”和“验证真实”的地方出现了。对于“verifyEuals”,它给出的错误为 - 方法verifyEquals(String,string)未定义类型prashantk。并且对于“verifyTrue”它给出错误 - 方法verifyTrue(boolean)对于prashantk是未定义的。 – user1906778

+0

您可以在这里发布整个堆栈跟踪,以便我们对您的问题有更好的了解。如果在上面发布的硒代码后更新了代码,也会向我们显示代码。这将有所帮助。 – Hemanth

+0

@HemChe:可能没有堆栈跟踪,因为它是编译错误而不是运行时。 –

0

替换在代码中以下行如下所示

硒=新DefaultSelenium(“本地主机”,4444,“*铬“,”http://book.theautomatedtester.co.uk/“);

   to 

DefaultSelenium硒=新DefaultSelenium( “本地主机”,4444, “*铬”, “http://book.theautomatedtester.co.uk/”);

+0

嗨哼,我试图这样做。但它不起作用。 – user1906778

+1

我以某种方式找到了解决方案。我用 - 导入org.junit.Assert。*;并使用“assertEquals”而不是“verifyEuals”。感谢Don和Hem的时间。 – user1906778

0

看代码给人的感觉是它在Selenium IDE中首先导出到像eclipse这样的工具。 我真的不认为'verifyEquals'存在于WebDriver中,而是使用JUnit断言或Hamcrest断言。尝试在Java中编写你的代码从头开始它的麻烦很少。