繁体   English   中英

无法实现 System.setProperty()

[英]Unable to implement System.setProperty()

我是硒的新手。 尝试使用 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

让我知道如何解决错误。

谢谢。

System.setProperty()放入:

public static void main(String[] args)

然后它会起作用!

我发现您对System.setProperty()调用存在两个问题:

  1. 它需要进入一个方法(它不能像在您的代码中那样位于字段声明中)。
  2. 它需要遵循方法调用的语法。

对于第 1 项,我不知道 TestNG,所以我不确定,但我相信您可以:

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

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

对于第 2 项,方法的声明和对它的调用在某些方面(故意)相似,在某些方面有所不同(因为声明和调用是两种不同的事物)。 因此,如果您阅读了System.setProperty()的声明,例如在文档中,您说setProperty(String key, String value)是正确的。 在声明中,您需要给出参数的类型。

在调用中,Java 已经知道您提供的参数的类型,因此它不允许您重复这些。 看看你对driver.get()调用,这是正确的。 您已经将baseUrl声明为String ,因此您不要在调用中重复该内容。 同样,不要在对System.setProperty()调用中重复String一词。 只需这样做:

System.setProperty(key, value);

这应该有效。

只需将System.setProperty放入一个方法中即可。 它只是要求它需要在括号中,一个方法! 可能是您用来启动测试的@BeforeSuite 方法!

希望以下应该有效。

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();
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM