2016-10-26 4 views
-3

Я новичок в селене. Пытаясь использовать структуру testNG. Но получение ошибки ниже. Я пробую простой код. Пожалуйста, помогите мне out.I пытается запустить следующий код:Невозможно реализовать System.setProperty()

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

}

Во время выполнения кода я получаю компиляцию error.Please найти ошибку ниже:

Вызванными: Java .lang.Error: Нерешенные проблемы компиляции: Синтаксис ошибок на лексемы «SetProperty», идентификатор ожидается после этого типа маркеров возврата для метода отсутствует Этот метод требует тела вместо точки с запятой

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

Дайте мне знать, как устранить эту ошибку.

Спасибо.

+2

'System.setProperty (ключ, значение);' Я не знаю, как объяснить это несколькими словами в комментарии – rafid059

+0

Проблема не в том, что вы новичок в Selenium, но что вы новичок в Java , Начните с основ. Использование селена не является основополагающим. –

ответ

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(). Просто выполните:

Это должно сработать.

+0

Пробовал следующее: System.setProperty (ключ, значение); , но его не работает. Такая же ошибка. –

+0

А, @SoumyajitDas, теперь я вижу, что случилось. Извините, я не заметил раньше. Я редактировал. –

+0

Извините за поздний ответ .... Большое спасибо. Его работа сейчас ... :) –