-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

2

への呼び出しには 2 つの問題がありますSystem.setProperty()

  1. メソッドに入る必要があります (コード内のようにフィールド宣言の間に立つことはできません)。
  2. メソッド呼び出しの構文に従う必要があります。

1.については、TestNGを知らないのでわかりませんが、できると思います。

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

ここで私が完全に正しくない場合は、誰かが私を修正してください。

項目 2 については、メソッドの宣言とメソッドの呼び出しは (意図的に) いくつかの点で類似しており、いくつかの点で異なります (宣言と呼び出しは 2 つの異なるものであるため)。したがって、System.setProperty()たとえばドキュメントで の宣言を読んだ場合、それが と言っているのは正しいですsetProperty(String key, String value)。宣言では、パラメーターの型を指定する必要があります。

呼び出しでは、Java は指定された引数の型を既に認識しているため、それらを繰り返すことはできません。への呼び出しを見てくださいdriver.get()。これは正しいです。すでに宣言しbaseUrlている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 に答える