Chrome не запускается из pycharm / selenium и выдает сообщение Процесс завершен с кодом выхода 0 - PullRequest
0 голосов
/ 21 сентября 2018
import datetime
import unittest

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait


class EnvSetup(unittest.TestCase):

    def setup(self):
        #self.driver = webdriver.chrome(r"C:/Users/Administrator/Downloads/Python Download/chromedriver_win32/chromedriver.exe")
        self.driver = webdriver.firefox(executable_path="C:/Users/Administrator/Downloads/Python Download/geckodriver-v0.20.0-win64/geckodriver.exe")
        self.driver.maximize_window()
        wait = WebDriverWait(self.driver, 10)
        #self.driver.i
        print("Browser Started at :" + str(datetime.datetime.now()))
        print("Chrome has been setUP....")
        print("************************************")
        self.driver.close()


    def test_checkBrowser(self):
        driver = self.driver
        driver.get("https://www.goibibo.com/")

    def closeBrowser(self):
        driver = self.driver
        self.driver.save_screenshot('1.png')
        print('Test Completed: Closing the browser...')
        self.driver.close()

    if __name__ ==' main ':
        unittest.main

1 Ответ

0 голосов
/ 24 сентября 2018

Вы должны позаботиться о вещах, когда используете модуль Python unittest следующим образом:

  • Конструктор webdriver.Firefox() но не webdriver.firefox().
  • При использовании Python's unittest метод имеет вид setUp, но не setup()
  • Если вы вызываете self.driver.close() в setUp() метод Браузер закроется и дальнейшее выполнение Tests не будет,Поэтому удалите строку:

    self.driver.close()
    
  • При использовании модуля Python unittest вместе с setup() методом, который вынужно использовать метод tearDown() в конце.Поэтому вам нужно изменить имя метода с closeBrowser() на tearDown()

  • Если вы присваиваете driver = self.driver, то вы можете вызывать методы напрямую как:

    driver.save_screenshot('1.png')
    
  • Всегда вызывайте driver.quit() в методе tearDown(){}, чтобы закрыть и уничтожить WebDriver и Веб-клиент экземпляров изящно.

  • Убедитесь, что отступы вашего кода были неверны для __name__ ==' main '.
  • Вот ваша собственная программа, включающая вышеупомянутые изменения:
  • Кодовый блок:

    import datetime
    import unittest
    from selenium import webdriver
    
    class EnvSetup(unittest.TestCase):
    
        def setUp(self):
            self.driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
            print("Browser Started at :" + str(datetime.datetime.now()))
            print("Chrome has been setUP....")
            print("************************************")
    
        def test_checkBrowser(self):
            driver = self.driver
            driver.get("https://www.goibibo.com/")
            driver.save_screenshot('./Screenshots/1.png')
            print('Test Completed: Closing the browser...')
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()
    
  • Консольный вывод:

    Finding files... done.
    Importing test modules ... done.
    
    Browser Started at :2018-09-24 15:07:49.786924
    Chrome has been setUP....
    ************************************
    Test Completed: Closing the browser...
    ----------------------------------------------------------------------
    Ran 1 test in 10.911s
    
    OK
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...