Вопрос: как правильно использовать assertRaises для для проверки отсутствия элемента. Что то в таком роде: self.assertRaises(NoSuchElementException, driver.find_element_by_xpath, 'xpath')]') выдаёт ошибку “AssertionError: NoSuchElementException not raised by find_element_by_xpath”
Может как-то так, посмотрите, написала примеры использования assertRaises.
import unittest
def sum(a, b):
return a + b
def find_element(a):
if not a in [5, 10, 15]:
raise Exception('%i is absent' % a)
#####################################
class TestExample(unittest.TestCase):
def test1(self):
self.assertRaises(TypeError, sum, 1000, 'a string')
def test2(self):
self.assertRaises(Exception, find_element, 123456)
if __name__ == '__main__':
unittest.main()
Спасибо всем, кто участвует в обсуждении. Для себя решение нашел в виде предложенном Katya. А задача состоит в том, что бы проверить отсутствие элемента load - индикатора на странице. И выношу его на Ваш суд. По-моему, получается как то кривовато
Есть такая штука в WebDriver как Wait и ExpectedCondition. Там можно ожидать различных условий, в том числе и Wait for element invisible
Мне кажется тест сам по себе странным. Этот элемент ожидания загрузки что, на каждом скрине реализован по разному? Для чего его проверять при выполнении каждого действия? Достаточно проверить, что механизм ожидания загрузки (фича) работает. Это отдельный тест.
В этом тесте достаточно проверить
элемент ожидания загрузки появляется
элемент ожидания загрузки исчезает не позже чем через максимально возможный промежуток времени
во время присутствия этого элемента взаимодействие с формой заблокировано (тут зависит от реализации этого элемента)
А твой исходный тест не должен думать о том есть элемент загрузки или нет. Он должен просто выполнять свой алгоритм проверки