2016-12-28 1 views
1

지도 파일에있는 xpath에서 두 개의 다른 매개 변수를 구문 분석하고 함수를 호출하여 java를 사용하여 요소를 식별 할 수 있습니까?xpath 내에서 두 개의 다른 매개 변수를 전달하는 방법은 무엇입니까?

의 XPath : 위의 XPath 1.2

//table[@id='TemplateCreator']//td[contains(@id,'Template.1.2')] 

가 row.column 값이다. 그래서 진행하면서 나는 행과 열을 매개 변수로 전달하려고합니다. 내가지도 파일에서이 XPath를 호출하고 매개 변수로 행 & 열 값을 전달하려면,

int row = 1; 
int column = 2; 
driver.findelement(By.Xpath("//table[@id='TemplateCreator']//td[contains(@id,'Template."+row+"."+column+"')]"); 

을하지만 : 나는 다음과 같이 내 코드에 하드 코딩 XPath를 사용하고 있습니다. 이 같은 것이 있지만 자바를 사용하는 것이 가능한가?

string template = //table[@id='TemplateCreator']//td[contains(@id,'Template.<identifier_row>.<identifier_column>')] 
driver.findelement(By.Xpath(template+row+column); 
+1

XPath는 문자열입니다 ... 다른 문자열과 마찬가지로 모든 변수를 대체합니다. – JeffC

답변

0

시도를 다음과 같이지도 파일에서

String template = "//table[@id='TemplateCreator']//td[contains(@id,'Template.%d.%d')]"; //read template from Map file 
    int row=1; 
    int column=1; 
    String after = String.format(template, row, column); 
    System.out.println("after replacing: " + after); 

, 저장 템플릿을 다음과 같이

//table[@id='TemplateCreator']//td[contains(@id,'Template.%d.%d')] 

그래서, 나중에 문자열의 형식을 String.format를 사용할 수 있습니다.

관련 문제