Функция Python (шаг салата) всегда возвращается True

Я работаю с селеном и салатом для тестирования в Python. У меня есть этот шаг для подсчета строк таблицы сотрудников

@step('I count employee table rows')
def i_count_emp_table_rows(step):
    try:
        elems = world.driver.find_elements_by_xpath(".//*[@id='myTable']/tr")
        sum = 0
        for item in elems:
            sum= sum+1
        return sum
    except Exception, e:
        print e
        return None

И у меня есть еще один шаг: на этом шаге я хочу сохранить количество сотрудников в таблице сотрудников (используя шаг выше), прежде чем перейти на следующую страницу после нажатия кнопки "Добавить сотрудника".

@step('I click the Add Employee Button')
def i_click_the_add_employee_button(step):
    world.prev_no_of_emp = step.given('I count employee table rows')
    print "Right Now total rows in table: " + str(world.pre_no_of_emp)
    done, world.driver = click_page_element(admin_add_employee_button_xpath, world.driver, wait=10) 

Но самое смешное, что я всегда получаю "True" вместо списка. Я даже использовал len(), но безуспешно
Вот результат заявления о печати.
Прямо сейчас общее количество строк в таблице: True

1 ответ

Решение

Вы должны поместить счет в некоторую глобальную переменную. Смотрите ниже обновленные шаги.

@step('I count employee table rows')
def i_count_emp_table_rows(step):
    try:
        elems = world.driver.find_elements_by_xpath(".//*[@id='myTable']/tr")
        world.count = len(elems)
    except Exception, e:
        print e.message
        world.count = None

@step('I click the Add Employee Button')
def i_click_the_add_employee_button(step):
    step.given('I count employee table rows')
    print "Right Now total rows in table: " + str(world.count)
    done, world.driver = click_page_element(admin_add_employee_button_xpath, world.driver, wait=10) 
Другие вопросы по тегам