-2

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

4 回答 4

3

放入System.setProperty()

public static void main(String[] args)

然后它将起作用!

于 2019-06-19T05:49:53.660 回答
2

我发现您致电有两个问题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了 a String,所以你不要在调用中重复它。同样,不要String在对 的调用中重复该词System.setProperty()。做就是了:

System.setProperty(key, value);

这应该有效。

于 2016-10-26T17:20:34.043 回答
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();
}

}
于 2020-07-20T11:15:48.677 回答
0

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

于 2018-06-06T01:51:57.117 回答