仅在使用unittest类时才能找到xpath元素

时间:2017-11-09 09:03:57

标签: python python-3.x selenium selenium-webdriver

最奇怪的事情: 我正在从一个模块运行一个程序,该模块从另一个模块调用一些函数。 问题是相同的代码在使用基本函数时会完美运行,但第三个函数只有在unittest类中使用时才会失败,并带有以下消息:

  

NoSuchElementException:消息:没有这样的元素:无法找到   元件:   { “方法”: “的xpath”, “选择器”: “// * [@ ID =” app_skeleton“] / tbody的/ TR [6] / TD /形式/表/ tbody的/ TR [2] / TD /表/ TBODY / TR [2] / TD [9] /一个“}。

以下是完整的课程:

  from Main_Package.General_Functions.Functions import 
  login,search_by_customer_id,add_subscriber_iden_and_activate,browser

class FirstTest(unittest.TestCase):
  @staticmethod
  def test_login():
     login()

 @staticmethod
 def test_search_by_customer_id():
     search_by_customer_id()

@staticmethod
def test_add_subscriber_iden_and_activate():
    add_subscriber_iden_and_activate()




#login()   ******this is the block of code that will run perfectly without # 
****
#search_by_customer_id()
#add_subscriber_iden_and_activate()


if __name__ == '__main__':
    unittest.main()

1 个答案:

答案 0 :(得分:0)

执行单元测试时,必须确保特定测试已准备好“环境”以执行测试。

测试的执行不按顺序进行,所以:

test_add_subscriber_iden_and_activate()

可以在

之前执行
test_login()

如果您想在每次测试之前和之后执行某些操作,或setUp()tearDown(),则可以使用方法setUpClass()tearDownClass()你想在所有测试之前和之后执行一些事情。

Here文档。