51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2319|回复: 4
打印 上一主题 下一主题

selenium 运行完一个def后浏览器被关掉 下一个def要重启

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-11-18 11:02:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下, 怎样才能让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)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2014-11-18 13:50:32 | 只看该作者
tearDown是每个case运行后,都会执行的,里面的  self.driver.quit()当然是结束脚本,如果要按照你那么说,不用关闭浏览器,连接执行脚本,最简单的写说,就是把几个case,弄成1个case不就行了吗,当执行完1个case后,想执行下一个case,就直接driver.get("xxx"),跳到对应的地址就行了,但是想不通你做这个的意义是啥,本身一个case都是推荐,从头到尾,不建议多个case合并成1个case
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2014-11-18 14:31:41 | 只看该作者
我还是新手, 在学的过程中遇到这个问题,想弄明白原因,我理解是def setUp(self) ->def test_sohema_log_in(self)->def test_personAdd(self)->def test_MMISData(self)->def tearDown(self) 这样执行下去, 可是实际上好像不是,就是想弄明白为啥每个def都有一次起启动浏览器,关闭浏览器的动作。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2014-11-18 23:21:56 | 只看该作者
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
是这样的
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2014-11-19 11:26:21 | 只看该作者
ruoyi1314520 发表于 2014-11-18 23:21
你弄错了,def setUp>def test>tearDown>def setUp>def test>tearDowndef setUp>def test>tearDowndef se ...

好的 谢谢回答^_^
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 06:40 , Processed in 0.066153 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表