2016-06-21 3 views
0

링크를 클릭하는 자동화 단계를 작성하려고합니다. 링크 대상으로 사용할 로케이터는 제목 속성의 끝과 일치합니다. 같은 유형의 여러 링크가있을 수 있습니다. 그 중 일부는 동일한 이름이 붙을 수 있습니다.이 섹션의 제목은 고유 한 것으로 보장 된이 링크 내의 유일한 비트입니다 (내 호출이 아닌, 기존의 것입니다. 시스템은 제 위치에 테스트를 쓰고 있습니다). 이 메서드를 사용하여 링크의 위치를 ​​찾는 데 문제가 없습니다.Selenium Webdriver - CSS 로케이터에 저장된 문자열 사용

참고 : 코드의 일부 요소가 내 고용주의 데이터 보안 제한으로 인해 개정되었습니다.

@FindBy(css = "#id .Content form > a[title$='12345678']") 
WebElement linkName; 

그러나 참조 나는 다른 데이터 입력에 따라 변경 될 수 있습니다 찾고 있어요 제목의 끝에 번호, 내 자동화 스위트 thorughout 여러 위치에 사용됩니다, 그래서 무엇을 생각합니다 그 번호를 String의 맨 처음에 String으로 저장하고 로케이터와 그것을 필요로하는 다른 영역을 참조하여 내 문제가 시작되는 곳을 참조하십시오. 내가 문자열을 참조하는 작업을 할 로케이터를 얻을 수없는 것 같습니다 .. 나는 내가 오류를 얻으려고하면, 일반적으로 구문 오류가 발생합니다.

@FindBy(css = "#id .Content form > a[title$='%s']", titleVariable) 
WebElement linkName; 

나는이 여러 번 재 배열 시도했지만 작동하는 형식으로 그것을 얻을 수없는 것. 어떤 제안이라도 환영받을 것입니다.

불분명하다면 사과드립니다. 고용주의 비즈니스 특성으로 인해 위에서 언급했듯이 데이터 보안 제한으로 인해 구체적인 정보를 너무 많이 제공 할 수 없으므로 가능한 한 많은 방법으로 설명해야했습니다. 있다. 당신은 당신이 할 수있는이 클래스의 WebDriver 객체가있는 경우

답변

1

첫 번째, u는 여기에 일정한 변수를 사용할 수 있어야합니다. 아래 코드를 사용하십시오 :

final String titleVariable = "ur title"; 

@FindBy(css = "#id .Content form > a[title$='"+titleVariable+"']") 
WebElement linkName; 
+0

고마워요! 이것은 완벽하게 작동했습니다. – Jsmith2800

0

: 모든

String titleVariable = "Your Title"; 
String cssSelector = "#id .Content form > a[title$='" + titleVariable + "']"; 

WebElement linkName = driver.findElement(By.cssSelector(cssSelector));