2017-03-04 85 views
1

我是JUnit Selenium中的新成员,并且发现问题。 我在@Test方法中找不到使用locator的元素。当我输入driver.时我没有预测性搜索,如果我输入@Before即可。无法在@Test中使用定位器Junit Selenium网络驱动程序

E.g我不能类型

@Test 
.. 
driver.findElement(By.id("gs_htif0")).sendKeys("blabla"); 

我的类包含 -

@Before 
public void setUp() throws Exception { 

    WebDriver driver; 
    System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe"); 
    driver = new FirefoxDriver(); 

String baseURL = "https://www.google.com"; 
driver.get(baseURL); 
} 

@Test 
public void test() { 
driver.**___PROBLEM___**  

} 

@After 
public void tearDown() throws Exception { 
} 

[eclipse - problem]

+0

。 – JeffC

回答

2

那是因为你已经声明

WebDriver driver; 

内局部setUp方法,在你的情况下也使用@Before进行注释。


您应将此移动到一流水平,并进一步利用作为 - 如果你将鼠标悬停在该`以红色标记会显示错误消息driver`

public class SomeTest { 

    WebDriver driver; 

    @Before 
    public void setUp() throws Exception { 
     ... 
     driver = new FirefoxDriver(); 
     ... 
     driver.get(baseURL); 
    } 

    @Test 
    public void test() { 
     driver.getTitle(); //just an example 
    } 

    .... // other methods 

} 
+0

非常感谢。当我移动WebDriver驱动程序时它正在工作;进入公共课。 为什么我不能把System.setProperty(“webdriver.gecko.driver”,“C:\\ geckodriver.exe”);例如WebDriver驱动程序,例如 公共类WebDriver驱动程序; System.setProperty(“webdriver.gecko.driver”,“C:\\ geckodriver.exe”); } 这是工作,只有当我设置属性成前... – Pinky

+0

@BabyBunny你不能把'System.setProperty(“webdriver.gecko.driver”,“C:\\ geckodriver.exe”) ;'在课堂上的陈述。试想一下从哪里(什么参考)调用它。它应该是一种方法。 – nullpointer

相关问题