2013-10-18 4 views
0

우리는 자동화 할 새 페이지를 가지고 있으며 부트 스트랩 템플릿을 통해 제공되는 일부 기능으로 인해 자동화에 몇 가지 문제가 발생합니다.Selenium Webdriver를 사용하여 요소의 활성 상태를 얻으시겠습니까?

전통적으로 체크 박스 또는 라디오 버튼으로, 우리는 그것을 식별하는 태그를 사용

[FindsBy(How = How.CssSelector, Using = "body [autotag='prf_rd_1']")] 
     private IWebElement myElement; 

어떤에서 당신이 쳤다 것 있는지 확인하기 위해 Webdriver 코드 element.isSelected을 사용할 수 있습니다 가리 킵니다.

하지만, 부트 스트랩 개발자들 활성 활성 여부 중 하나입니다 버튼, 예를 들어, 사용하도록 변경 한과 :

<button class="btn" autotag="prf_bt1" btn-radio="availabilityType.key" ng-model="model.availability.time" type="button"> … </button> 

<button class="btn **active**" autotag="prf_bt1" btn-radio="availabilityType.key" ng-model="model.availability.time" type="button"> … </button> 

(흠, 확실하지 어떻게에 매우 단어 활성 코드에서, 만약 사람 알고 있기 때문에 자유롭게 편집 할 수 있음)

이제는 'isSelected'를 찾을 수 없습니다. 확인란처럼 작동하지 않습니다.

XPATH를 사용하지 않고 버튼에 CSS가 활성 클래스인지 여부를 확인하는 코드 샘플이 있습니까? 현재 우리는 위와 같이 CssSelector를 사용합니다.이 방법으로 요소를 이동할 수 있으며 텍스트는 바뀔 수 있지만 자동 태그가 그대로있는 한 모두 좋습니다. 그러나, 나는 이것을 어떻게 할 수 있는지, 그리고 동시에 다른 CSS (클래스)를 찾아서 동시에 그것이 활성인지를 결정하고있다. 당신은 here에서 이러한 방법에 대한 자세한 정보를 얻을 수 있습니다

getAttribute 
getCssValue 
isEnabled 

당신은 요소의 상태를 확인하려면 다음 방법 중 하나를 사용할 수 있습니다

답변

2

, 당신은 단지 이 경우, 그것은 class있어, 특정의 속성 내부 특정 값을 포함하는 요소를 찾을 수있는 CSS 선택기를합니다. 쉽게

이 될 것이라고 할 수있는 정교한 방법 :

button[class*='active'] 

*=는 "A 어딘가에 그 속성의 값의 내부입니다"당신이 말을 할 수 있도록 속성 와일드 카드입니다. 과거에

button[class*='active'][auto-tag='prf_bt1'] 
+0

나는 실제로'button [class ~ = 'active']'조금 더 관대하다. 그러나 더 나은 -'button.active'': D' – sircapsalot

+0

그래, 클래스를 찾고있는 중이라면 내가 할 수 있지만,이 경우에는 cssselector로 autotag 속성을 찾고 있는데, 클래스에도 활성 태그가 있습니다. 내가 고심하고있는 것은 "한 걸음 씩"입니다. –

+0

@MarkMayo, 제 편집이 도움이됩니까? – Arran

0

. 내가 제대로 이해하면

+0

예, 사용한 모든 방법 :

는 특히 activeprf_bt1로 설정되는 auto-tag 속성이 포함 된 class을 가지고있는 button를 찾으십시오. 그러나이 경우 이미 autotag 속성을 사용하여 항목을 찾은 다음 cssselector를 사용하여 얻은 요소에 활성 클래스가 있는지 여부를 알고 싶습니다. 이 방법을 사용하여이를 달성하는 방법을 자세히 설명해 주시겠습니까? –

관련 문제