Java 无法在@Test Junit Selenium web驱动程序中使用定位器

Java 无法在@Test Junit Selenium web驱动程序中使用定位器,java,eclipse,junit,Java,Eclipse,Junit,我是JUnit Selenium的新手,我发现了这个问题。 我在@Test method中找不到使用定位器的元素。当我键入驱动程序时,我没有预测性搜索。如果我在之前键入,我可以 我不会打字 @Test .. driver.findElement(By.id("gs_htif0")).sendKeys("blabla"); 我的班级包含- @Before public void setUp() throws Exception { WebDriver driver; Syste

我是JUnit Selenium的新手,我发现了这个问题。 我在@Test method中找不到使用定位器的元素。当我键入
驱动程序时,我没有预测性搜索。
如果我在
之前键入
,我可以

我不会打字

@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 {
}

那是因为你已经声明

WebDriver driver; 
本地位于设置方法中,在您的案例中,该方法也使用
@Before
进行注释


您应将其移动到班级级别,并进一步用作-

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

}

如果您将鼠标悬停在标有红色的
驱动程序上,它将显示一条错误消息。非常感谢。当我移动WebDriver时,它正在工作;进入公共课堂。为什么我不能同时放置System.setProperty(“webdriver.gecko.driver”,“C:\\geckodriver.exe”);在WebDriver下面,例如公共类{WebDriver driver;System.setProperty(“WebDriver.gecko.driver”,“C:\\geckodriver.exe”);}只有在我将属性设置到…@BabyBunny之前,它才起作用。
System.setProperty(“WebDriver.gecko.driver”,“C:\\geckodriver.exe”)语句。想象一下,它将从何处调用(什么引用)。它应该是一种方法。