无法实现System.setProperty()

时间:2016-10-26 16:55:55

标签: java selenium selenium-webdriver testng-eclipse

我是硒的新手。试图使用testNG框架。但收到以下错误。我正在尝试一个简单的代码。请帮帮我。我正在尝试运行以下代码:

package testng_project;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class Sample {


// declaration and instantiation of objects/variables
String key= "webdriver.gecko.driver";
String value= "C:\\geckodriver-v0.10.0-win64\\geckodriver.exe";
System.setProperty(String key,String value);
//public static String setProperty(String key,String value);
WebDriver driver = new FirefoxDriver();
String baseUrl = "http://newtours.demoaut.com";


@Test
public void verifyhomepage_title()
{
    driver.get(baseUrl);
    String expectedtitle = "Welcome: Mercury Tours";
    String actualtitle=driver.getTitle();
    Assert.assertEquals(actualtitle,expectedtitle);
    driver.quit();
}

}

运行代码时出现编译错误。请找到以下错误:

引起:java.lang.Error:未解决的编译问题:     令牌“setProperty”上的语法错误,此令牌后预期的标识符     缺少方法的返回类型     此方法需要正文而不是分号

at testng_project.Sample.<init>(Sample.`enter code here`java:15)
... 27 more

让我知道如何解决错误。

感谢。

4 个答案:

答案 0 :(得分:2)

我在调用System.setProperty()时发现了两个问题:

  1. 它需要进入一个方法(它不能像在你的代码中那样站在字段声明中)。
  2. 需要遵循方法调用的语法。
  3. 对于第1项,我不知道TestNG,所以我不确定,但我相信你能做到:

    @BeforeTest
    public void setup() {
        System.setProperty(key, value);
    }
    

    如果我在这里不完全正确,请有人纠正我。

    对于第2项。方法的声明和对它的调用在某些方面(有目的)是相似的,在某些方面是不同的(因为声明和调用是两个不同的东西)。因此,如果您阅读System.setProperty()的声明,例如在文档中,那么您说setProperty(String key, String value)是正确的。在声明中,您需要提供参数的类型。

    在调用中,Java已经知道您提供的参数的类型,因此它不允许您重复这些参数。查看您对driver.get()的来电,这是正确的。您已将baseUrl声明为String,因此您不会在通话中重复此操作。同样,请勿在致电String时重复System.setProperty()字样。只是做:

    System.setProperty(key, value);
    

    这应该有用。

答案 1 :(得分:0)

System.setProperty放入方法中。所有这一切都要求它需要在括号中,方法!可能是你用来启动测试的@BeforeSuite方法!

答案 2 :(得分:0)

System.setProperty()放在:

public static void main(String[] args)

那就可以了!

答案 3 :(得分:0)

希望以下方法可行。

public class Sample {

//declaration and instantiation of objects/variables

    String key = "webdriver.gecko.driver";
    String value = "C:\\geckodriver-v0.10.0-win64\\geckodriver.exe";

    WebDriver driver = new FirefoxDriver();
    String baseUrl = "http://newtours.demoaut.com";

@BeforeSuite

    public void setUp() {   
        
    System.setProperty(key,value);  
    driver = new FirefoxDriver();
    }

@Test

    public void verifyhomepage_title(){

    driver.get(baseUrl);
    String expectedtitle = "Welcome: Mercury Tours";
    String actualtitle = driver.getTitle();
    Assert.assertEquals(actualtitle,expectedtitle);
    driver.quit();
}

}