efficient 发表于 2014-11-18 11:02:34

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/div/div/div/div/div/div/ul/li/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/div/div/ul/li/div/ul/li/a/span").click()
      driver.find_element_by_xpath("//form/div/div/div/ul/li/div/ul/li/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:32

tearDown是每个case运行后,都会执行的,里面的self.driver.quit()当然是结束脚本,如果要按照你那么说,不用关闭浏览器,连接执行脚本,最简单的写说,就是把几个case,弄成1个case不就行了吗,当执行完1个case后,想执行下一个case,就直接driver.get("xxx"),跳到对应的地址就行了,但是想不通你做这个的意义是啥,本身一个case都是推荐,从头到尾,不建议多个case合并成1个case

efficient 发表于 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都有一次起启动浏览器,关闭浏览器的动作。

ruoyi1314520 发表于 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
是这样的

efficient 发表于 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]
查看完整版本: selenium 运行完一个def后浏览器被关掉 下一个def要重启