1

브라우저를 열고 www.google.com으로 이동하는 간단한 고정 장치를 작성하려고합니다. 위키 페이지를 실행하면 모든 녹색으로 전달되지만 브라우저가 열리지 않습니다 (위키에서 메서드가 호출되지 않는다고 생각합니다). 누군가 내가 잘못하고있는 것을보기 위해 나의 비품과 위키를 들여다 볼 수 있습니까? 고정물 여기피트니스 위키에서 셀레늄 메서드를 올바르게 호출 할 수 없음

!|SeleniumFitnesse| java.lang.NoSuchMethodError: org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(Lorg/openqa/selenium/remote/service/DriverService;Ljava/util/Map;)V 
|URL |The instance decisionTable_4.setURL. does not exist|navigateToSite? 
|http://www.google.com|!The instance decisionTable_4.navigateToSite. does not exist | 

입니다 - - 당신은 같은 좋은 권고를 받고

package FitNesseConcept.fitNesse; 

import java.util.Properties; 

import org.junit.BeforeClass; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.testng.annotations.BeforeMethod; 

//import com.google.common.base.Preconditions.*; 
//import com.google.common.collect.Lists; 

import fit.ColumnFixture; 

public class SeleniumFitnesse extends ColumnFixture { 

public static ChromeDriver driver = null; 
private String navigateToSite = ""; 
public String URL = ""; 



    public SeleniumFitnesse() { 

    Properties props = System.getProperties(); 

    props.setProperty("webdriver.chrome.driver", "/home/ninad/eclipse-workspace/chromedriver"); 

    driver = new ChromeDriver(); 
    } 



// SET-GET Methods 

public String getURL() { 
    return URL; 
} 

public void setURL(String uRL) { 
    URL = uRL; 
} 

public String getNavigateToSite() { 
    return navigateToSite; 
} 

public void setNavigateToSite(String navigateToSite) { 
    this.navigateToSite = navigateToSite; 
} 

// Navigate to URL 

public void navigateToSite() throws Throwable { 
    System.out.println("Navigating to Website"); 

    try { 
     driver.navigate().to(URL); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 



} 
+0

자신 만의 (또 다른) Selenium FitNesse 통합을 작성하는 특별한 이유가 있습니까? http://fitnesse.org/PlugIns#slimfixtures에서 사용 가능한 플러그인을 확인 했습니까? –

+0

Fit column fixture를 쓰는 이유는 무엇입니까? 어떤 형태의 의사 결정 테이블을 만들고 싶습니까? 내가 코드와 위키를 볼 때 나는 당신이 그 테이블이 표현하기를 기대하는 것이 무엇인지 알 수 없다. 테이블을 사용하여 여러 단계 (예 : 페이지 열기)를 수행하려면 순차적으로 Slim 테스트 러너로 전환하고 스크립트 테이블 (http://fitnesse.org/FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests)을 사용하는 것이 좋습니다. .SliM.ScriptTable). 현재 코드는 jUnit'BeforeMethod' 주석을 사용합니다. 이는 FitNesse 컨텍스트에서 무엇을 의미하거나하는 것이 아닙니다. –

+0

답변 해 주셔서 감사합니다. 나는 slimfixture 플러그인을 알지 못했습니다. 이클립스 프로젝트로 가져 오는 방법을 단계별로 알려 줄 수 있습니까? Maven 종속성을 추가하는 것만 큼 간단합니까? 그렇지 않다면 항아리는 정확히 어디에 있습니까? 많은 감사 (fyi - 나는이 모든 것에 중급에서 초급이다, 나는 오이에게 익숙하지만, 내가 일하는 회사는 fitnesse을 원한다). – noMoreMutants

답변

1

!|SeleniumFitness| 
    |URL     |navigateToSite?| 
    |http://www.google.com|    | 

실행 후 - 사전에 많은 감사, 여기에

는 위키입니다 댓글 -하지만 귀하의 질문에 직접 대답하기 위해, 당신이 작성한 구식 ColumnFixture, 나 thod "navigateToSite"는 실제로 호출되지 않습니다.

이러한 스타일의 조명기는 더 이상 자주 사용되지 않으며 슬림이 선호되며 문서의 fitnesse 인스턴스는 슬림 스타일 사용 방법을 보여줍니다. 그러나 작성한 컬럼 고정물의 경우, 메소드를 호출하려면 "?"이어야합니다. 헤더 행의 메서드 이름을 따릅니다. 당신은 잘못 사용하여 열 고정은, 비록 기존의 스타일을 부여 http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.BasicFitFixtures.ColumnFixture

:

는 열 고정을위한 기본 문서를 참조하십시오. 컬럼 고정물의 패턴은 "여기 입력을 나타내는 일련의 열이 있습니다. 이제는 결과를 얻고 결과를 얻고 싶습니다." 웹 사이트 탐색은 그 패턴에 맞지 않는 경우가 많습니다. 새로운 슬림 스타일에

http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.BasicFitFixtures.ActionFixture

, 탐색에 적합하고 당신이 대본 도표 될 곳 확인 : 그것은 아마 ActionFixture에 의해 접근 될 수 fitnesse 오래 된 스타일에. 위키를 통해 일반하고 WebDriver/셀레늄 테스트에서

http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM.ScenarioTable

은 당신의 가장 좋은 매체의 여부에 가치를 추가 생각입니다. Fitnesse는 실제로 소스 코드와 직접적으로 비즈니스 요구 사항을 문서화하고 검증하기위한 공동 작업 도구로 설계되었습니다.

|url|navigateToUrl?| 
|www.google.com| | 

java class: 
public String url; 

public void navigateToUrl() { 
} 

당신이 "OK"가 이동했을 경우에 확실히를 반환하거나, 반대로 페이지의 제목을 반환 할 수 : 다시 정확히 적합하지 ColumnFixture 있지만 여기

는 ColumnFixture으로 수행하는 방법의 예 네가 원한다면 무효화하라.

+0

Jim에게 고맙습니다, Wiki를 변경했습니다. 당신이 준 저서 "컬럼 고정물을위한 기본 문서"- ! | SeleniumFitnesse | | URL \t | 토이 사이트를 탐색 하시겠습니까? | http : //www.google.com | \t 하지만 얻을 수있는 - 메서드 navigateToSite [0] 찾을 수 없습니다에서 FitNesseConcept.fitNesse.SeleniumFitnesse. 아이디어가 있으십니까? – noMoreMutants

+0

예 - 위 코드에서와 같이 navigateToSite에 대한 메서드는 단일 입력 매개 변수를 취합니다.이 매개 변수는 fitness 메서드가 no 인수 메서드를 호출하려고 시도하는 URL입니다. 위키에서 조명기를 변경하여 URL을 별도의 열로 전달하고 조명기 클래스에 public 속성을 만듭니다. 그래서 : | url | navigateToSite?, "public string url;" 당신의 정착물 종류에. navigateToSite 메서드에서 입력 parm을 제거하고 대신 url 속성을 참조하십시오. –

+0

예를 들어 편집 된 내용보기 –

관련 문제