Предупреждение о ресурсах на закрытом объекте драйвера

#python-3.x #selenium #mobile #automated-tests

Вопрос:

Я начинаю использовать шаблон проектирования объектов страницы для автоматического тестирования в Selenium на Python.

Я получаю ошибку, которая (как я узнал) означает, что я не закрыл некоторые ресурсы.

 C:Users48796PycharmProjectstest_page_mobilevenvlibsite-packagesseleniumwebdriverremoteremote_connection.py:374: ResourceWarning: unclosed <socket.socket fd=512, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 55580), raddr=('127.0.0.1', 4723)>
return self._request(command_info[0], url, body=data)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
 

Я действительно не понимаю, почему это появляется четыре раза подряд для этого кода:

 import unittest
from selenium import webdriver
from src.Pages.MainPage import MainPage


class Test001(unittest.TestCase):

    def setUp(self):
        desired_capabilities = {
           "platformName": "Android",
           "platformVersion": "11",
            "deviceName": "emulator-5554",  # cmd -> adb devices
            "browserName": "Chrome"
        }

        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_capabilities)

    def test_print_title(self):
        main_page = MainPage(self.driver)
        print(main_page.get_title())
    
    def tearDown(self):
        self.driver.close()


if __name__ == '__main__':
    unittest.main()
 

И, как вы можете видеть, драйвер закрывается методом «демонтажа». Что я делаю не так? 🙁

Ответ №1:

Хорошо, я выяснил, в чем была проблема. Это было важно. Я использовал

 from selenium import webdriver
 

Но для сервера Appium я должен использовать Appium Webdriver

 from appium import webdriver
 

который является частью пакета «Appium-Python-Клиент» (вместо «селен»)