2016-06-23 7 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

おかげで、しかし、私がいる問題は、画面に表示されている1識別だ、要素を特定していない 私は、「利用できるユーザー名」が表示されているかどうかを知る必要があり、または「最小長が4文字である」が表示されている場合(または他の文字のいずれか) – ChrisG29

0

私はテキストを読む方法を見つけることができませんでしたが、別の解決策が見つかりました。画面に表示されているテキストを確認する代わりに、どのラベルが表示されているかを確認します(各ラベルに固有のIDが割り当てられているため、これを行うことができます)。

コードが表示される以下のようなもの:。

Name=driver.find_element_by_id('test2') 
if Name.is_displayed(): 
    print ("Element found") 
else: 
    print ("Element not found") 
関連する問題