使用Selenium(Python)从标签获取文本

时间:2016-06-23 07:26:20

标签: python selenium

我试图从根据特定条件更改的标签中读取文本(例如,如果您输入已在使用的用户名,标签将显示"用户名已在使用")

我一直试图从显示的标签中读取文字,但到目前为止我没有尝试过任何工作。

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>

有谁知道如何阅读屏幕上显示的内容?

3 个答案:

答案 0 :(得分:0)

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

您可以使用内置方法中的find_element_by_class_name。

您需要将类名作为参数传递。

答案 1 :(得分:0)

我没有设法找到阅读文字的方法,但我找到了另一种解决方案。我没有检查屏幕上显示的文本,而是检查显示哪些标签(我能够这样做,因为每个标签都有一个唯一的ID。

所以代码看起来像:

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

答案 2 :(得分:0)

content = driver.find_element_by_class_name('fa-exclamation-circle')
print (content.text)