一尘不染

Python + WebDriver —使用unittest模块时未启动浏览器

selenium

您能帮我下一个吗?我发现了问题,无法解决。当我使用下一个代码时,浏览器已经启动并且测试通过了:

import unittest
from selenium import webdriver
driver = webdriver.Chrome('D:\chromedriver\chromedriver.exe')
driver.get("site URL")

但是与类和方法相同的消息返回消息:“进程以退出代码0结束”:

import unittest
from selenium import webdriver
class GlossaryPage(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome(executable_path='D:\chromedriver\chromedriver.exe')
        self.driver.maximize_window()
        self.driver.implicitly_wait(10)
    def NoLorem(self):
        driver = self.driver
        driver.get("site URL")
    def tearDown(self):
        unittest.quit()

如何使用第二种情况(带有方法和类)打开浏览器?

非常感谢您的帮助。


阅读 349

收藏
2020-06-26

共1个答案

一尘不染

在使用 Selenium 处理Python的 unittest 模块时,您必须考虑以下几个事实: __

  • 当您传递 密钥时 executable_path,请通过单引号和原始开关提供 r
  • 在定义@Tests名称时,以测试开头的 测试, 例如 def test_NoLorem(self):
  • 在调用时,请get()确保您传递的是有效的url例如 http://www.python.org
  • 当您在quit()内部def tearDown(self):调用方法时,通过 WebDriver 实例以方式调用该方法self.driver.quit()
  • 如果使用 unittest 模块,则必须Tests通过 name ==“ main 来调用直通
  • 这是您自己的代码,需要进行一些小的修改:

    import unittest
    

    from selenium import webdriver

    class GlossaryPage(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
        self.driver.maximize_window()
        self.driver.implicitly_wait(10)
    def test_NoLorem(self):
        driver = self.driver
        driver.get("http://www.python.org")
    def tearDown(self):
        self.driver.quit()
    

    if name == “main”:
    unittest.main()

2020-06-26