使用Selenium Webdriver检查字段错误

时间:2013-05-03 07:35:12

标签: python selenium webdriver

我一直在尝试实施测试以检查表单中的字段验证。检查特定的字段错误消息很简单,但我还尝试了一般检查以识别错误类的字段的父元素。然而,这不起作用。

包含错误的字段具有以下HTML;

<div class="field clearfix error ">
    <div class="error">
        <p>Please enter a value</p>
    </div>
    <label for="id_fromDate">
    <input id="id_fromDate" type="text" value="" name="fromDate">
</div>

所以要检查错误,我有以下功能;

def assertValidationFail(self, field_id):
    # Checks for a div.error sibling element
    el = self.find(field_id)
    try:
        error_el = el.find_element_by_xpath('../div[@class="error"]')
    except NoSuchElementException:
        error_el = None
    self.assertIsNotNone(error_el)

所以el是输入字段,但是xpath总是失败。我相信../以与命令行导航相同的方式上升到一个级别 - 这不是这种情况吗?

2 个答案:

答案 0 :(得分:1)

早些时候误解了你的问题。您可以尝试以下逻辑:找到父div,然后检查它是否包含类error,而不是找到父div.error并检查NoSuchElementException

由于..是上层的方式,../div表示父母的孩子div

// non-working code, only the logic
parent_div = el.find_element_by_xpath("..") # the parent div
self.assertTrue("error" in parent_div.get_attribute("class"))

答案 1 :(得分:1)

当您使用相对xpath(基于现有元素)时,它需要以./开头,如下所示:

el.find_element_by_xpath('./../div[@class="error"]')

只有在./之后才能开始指定xpath节点等。