我已经设置了我的 Selenium (v 2.3) 测试的功能,以检查某些错误消息的存在,这些错误消息一直运行良好,直到我正在检查的元素有首字母缩略词。
我的函数获取页面中的所有错误,然后搜索div
预期的消息;
# el is the error div element
error_el = el.find_element_by_xpath('p[contains(text(), "{0}")]'.format(error_text))
...
self.assertIsNotNone(error_el) # make sure it actually found something
我从我的测试中调用self.assertFieldError('My error message')
它并且它完美地工作,直到'My error message'
包含一个首字母缩写词。如果存在首字母缩略词,则 Selenium 不会将我的字符串与段落匹配。
我目前对此的解决方案是检查页面源中的字符串,但如果它是多次出现的字符串,这并不理想。
是否可以忽略首字母缩写词标签或改进我的 xpath 以允许文本或带有首字母缩写词的文本?我一直认为该text()
方法的操作与用户看到的完全一样,并且它会自动忽略首字母缩略词。
编辑
错误消息使用 Javascript 附加到字段,该 Javascript 通过字段名称从 Django 表单获取字段标签。尽管据我所知,这与 Selenium 无关。
HTML:
<div class="field">
<div class="error">
<p>My <acronym title="Error">ERR</acronym> message</p>
</div>
<label for="id_myField">My <acronym title="Error">ERR</acronym> message</label>
<input id="id_myField" type="text">
</div>