2017-03-04 67 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

相關問題