51Testing软件测试论坛

标题: selenium 运行完一个def后浏览器被关掉 下一个def要重启 [打印本页]

作者: efficient    时间: 2014-11-18 11:02
标题: selenium 运行完一个def后浏览器被关掉 下一个def要重启
代码如下, 怎样才能让def的动作在同一个浏览器中连续操作?
现在是运行完test_sohema_log_in浏览器会被关掉,然后在重启进行下一个def
class personAdd(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(20)
        
    def test_sohema_log_in(self):
        driver = self.driver
        driver.get("https://.../SignIn")
        driver.find_element_by_id("ctl00_PageContent_txtUsername_text").clear()
        driver.find_element_by_id("ctl00_PageContent_txtUsername_text").send_keys("...")
        driver.find_element_by_id("ctl00_PageContent_txtPassword_text").clear()
        driver.find_element_by_id("ctl00_PageContent_txtPassword_text").send_keys("....")
        driver.find_element_by_id("ctl00_PageContent_btnSignIn").click()
        
    def test_personAdd(self):
        driver = self.driver
        driver.get("https://..../Search")   
        driver.find_element_by_xpath("//form/div[5]/div[4]/div/div[2]/div/div/div/ul/li[2]/a/span/span/span").click()
        driver.find_element_by_id("ctl00_content_665_2185_filtersList_ctrl0_ctl00_singleLineTextField_text").send_keys("sm")
        driver.find_element_by_id("ctl00_content_665_2185_filterButton").click()
    def test_MMISData(self):
        driver = self.driver
        driver.find_element_by_xpath("//form/div[5]/div[5]/div/ul/li/div/ul/li[3]/a/span").click()
        driver.find_element_by_xpath("//form/div[5]/div[5]/div/ul/li/div/ul/li[3]/div/ul/li/a/span").click()
    def tearDown(self):
        self.driver.quit()
if __name__ == "__main__":
    suite = unittest.TestSuite()
    suite.addTest(personAdd("test_personAdd"))
    suite.addTest(personAdd("test_MMISData"))
    runner = unittest.TextTestRunner()
    runner.run(suite)
作者: ruoyi1314520    时间: 2014-11-18 13:50
tearDown是每个case运行后,都会执行的,里面的  self.driver.quit()当然是结束脚本,如果要按照你那么说,不用关闭浏览器,连接执行脚本,最简单的写说,就是把几个case,弄成1个case不就行了吗,当执行完1个case后,想执行下一个case,就直接driver.get("xxx"),跳到对应的地址就行了,但是想不通你做这个的意义是啥,本身一个case都是推荐,从头到尾,不建议多个case合并成1个case
作者: efficient    时间: 2014-11-18 14:31
我还是新手, 在学的过程中遇到这个问题,想弄明白原因,我理解是def setUp(self) ->def test_sohema_log_in(self)->def test_personAdd(self)->def test_MMISData(self)->def tearDown(self) 这样执行下去, 可是实际上好像不是,就是想弄明白为啥每个def都有一次起启动浏览器,关闭浏览器的动作。

作者: ruoyi1314520    时间: 2014-11-18 23:21
efficient 发表于 2014-11-18 14:31
我还是新手, 在学的过程中遇到这个问题,想弄明白原因,我理解是def setUp(self) ->def test_sohema_log_i ...

你弄错了,def setUp>def test>tearDown>def setUp>def test>tearDowndef setUp>def test>tearDowndef setUp>def test>tearDowndef setUp>def test>tearDowndef setUp>def test>tearDowndef setUp>def test>tearDown
是这样的
作者: efficient    时间: 2014-11-19 11:26
ruoyi1314520 发表于 2014-11-18 23:21
你弄错了,def setUp>def test>tearDown>def setUp>def test>tearDowndef setUp>def test>tearDowndef se ...

好的 谢谢回答^_^




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2