我试图从根据特定条件更改的标签中读取文本(例如,如果您输入已在使用的用户名,标签将显示"用户名已在使用")
我一直试图从显示的标签中读取文字,但到目前为止我没有尝试过任何工作。
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 :(得分: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)