Selenium,用Python,如何简化脚本,以便我可以从其他python脚本运行它们?

时间:2010-08-26 17:56:24

标签: python unit-testing selenium

我在弄清楚如何取出硒条中不必要的东西并将其打包以便我可以从另一个脚本中调用它时遇到了一些麻烦。我无法理解正在发生的事情这个,因为我没有得到单元testint部件来自哪里...理想情况下,如果我可以将它分成一个我可以调用的功能,这将是一个想法,感谢任何建议。

(并且,是的,我确实需要硒,我请你不要建议替代品,因为我将使用硒来做很多事情所以我需要弄明白这一点)

这只是一个基本的演示脚本:

from selenium import selenium

import unittest



class TestGoogle(unittest.TestCase):

    def setUp(self):

        self.selenium = selenium("localhost", \

            4444, "*firefox", "http://www.bing.com")

        self.selenium.start()



    def test_google(self):

        sel = self.selenium

        sel.open("http://www.google.com/webhp")

        sel.type("q", "hello world")

        sel.click("btnG")

        sel.wait_for_page_to_load(5000)

        self.assertEqual("hello world - Google Search", sel.get_title())



    def tearDown(self):

        self.selenium.stop()



if __name__ == "__main__":

    unittest.main()

1 个答案:

答案 0 :(得分:1)

我建议的是在你的另一个脚本中创建函数,作为参数引用测试用例。这样,如果某些事情不正确,您的功能可能会使测试用例失败。像这样(搜索谷歌搜索字符串并检查标题):

def search_s(utest, in_str):
  s = utest.selenium
  s.type('q', in_str)
  s.click('btnG')
  s.wait_for_page_to_load('30000')
  utest.assertEqual("%s - Google Search" % (in_str,), s.get_title())

然后,在您的测试用例中,将其称为:

def test_google(self):
  s.open('/')
  search_s(self, "hello world")

然后,您可以创建这些类型的方法的库,允许您混合和匹配测试的部分。

相关问题