2016-06-23 3 views
0

특정 조건에 따라 변경되는 레이블에서 텍스트를 읽으려고합니다 (예 : 이미 사용중인 사용자 이름을 입력하면 레이블에 "Username already in 용도").Selenium (Python)을 사용하여 레이블에서 텍스트 가져 오기

표시되는 레이블에서 텍스트를 읽으려고했지만 지금까지 아무 것도 시도하지 않았습니다.

html로는 다음과 같습니다

<div class="margin-top-10"> 
    <span ng-show="sentValidation"> 
     <span id="test1" ng-show="userNameAvailable" class="txt-color-green"> 
      <i class="fa fa-check fa-lg"></i>Username available 
     </span> 
     <span id="test2" ng-show="!userNameAvailable && userNameAvailable != null" class="txt-color-red"> 
       <i class="fa fa-exclamation-circle"></i>Username unavailable 
      </span> 
    </span> 
    <div class="txt-color-red" ng-show="form.cUsername.$dirty && form.cUsername.$invalid"> 
      <p id="test3" ng-show="form.cUsername.$error.required"> 
       <i class="fa fa-exclamation-circle"></i>Username is required 
      </p> 
      <p id="test4" class="txt-color-red" ng-show="form.cUsername.$error.maxlength"> 
      <i class="fa fa-exclamation-circle"></i>Maxmium length is 50 characters 
      </p> 
      <p id="test5" class="txt-color-red" ng-show="form.cUsername.$error.minlength"> 
       <i class="fa fa-exclamation-circle"></i>Minimum length is 4 characters 
      </p> 
    </div> 
</div> 

는 사람이 어떻게 화면에 표시됩니다 무엇을 읽을 수있는 방법을 알고 있나요?

답변

0
content = driver.find_element_by_class_name('fa-exclamation-circle') 
content.is_displayed() 

내장 메소드 find_element_by_class_name을 사용할 수 있습니다.

매개 변수로 클래스 이름을 전달해야합니다.

+0

감사합니다,하지만 난 데 문제가있는 요소를 식별하는 것이 아니라, 화면에 표시되는 하나 확인하는 것 것은 내가 "가능한 아이디"가 표시되고 있는지 알 필요, 또는 "최소 길이가 4 자"인 경우 (또는 다른 사람 중 하나)가 표시됩니다. – ChrisG29

0

텍스트를 읽을 수있는 방법을 찾지 못했지만 다른 해결책을 찾았습니다. 어떤 텍스트가 화면에 표시되는지 확인하는 대신 어떤 레이블이 표시되는지 확인합니다 (각 레이블에 고유 ID가 부여되어 있으므로이 작업을 수행 할 수 있습니다.)

그러면 코드가 보입니다. 뭔가 같은 :.

Name=driver.find_element_by_id('test2') 
if Name.is_displayed(): 
    print ("Element found") 
else: 
    print ("Element not found") 
관련 문제