Подключение драйвера селена к настольному приложению CEF - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу использовать Selenium WebDriver для запуска автоматических тестов в окне CEF, встроенном в приложение. Когда я запускаю приложение с включенной консолью отладки, а затем запускаю тест, я получаю следующую ошибку:

SessionNotCreatedException: Сообщение: сеанс не создан из-за неизвестной ошибки: необработанная ошибка инспектора: («код»: - 32601, «сообщение»: «Target.setAutoAtach 'не найден»)

Как я могу исправить эту ошибку? Или есть другой способ подключения к настольному приложению CEF?

Мой код C #:

Cef.Initialize(new CefSettings
{
    RemoteDebuggingPort = 55555,
    Locale = ResourcesController.GetResource("Locale"),
    LogSeverity = LogSeverity.Disable
});
ChromeBrowser = new ChromiumWebBrowser(mainHtml)
{
    Dock = DockStyle.Fill,
    BrowserSettings = new BrowserSettings
    {
        FileAccessFromFileUrls = CefState.Enabled,
        UniversalAccessFromFileUrls = CefState.Enabled,
    },
    MenuHandler = new CustomContextMenuHandler()
};

И тест автоматизации в python:

import unittest
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import os

CEF_PORT = "55555"
DEBUGGER_ADDRESS = "localhost:{}".format(CEF_PORT)
CHROMEDRIVER_PATH = "C:\chromedriver\chromedriver.exe"
os.environ["PATH"] += os.pathsep + r'C:\chromedriver'

class LoginTest(unittest.TestCase):
    window_handle_main = None

    def setUp(cls):
        options = webdriver.ChromeOptions()
        options.debugger_address = DEBUGGER_ADDRESS

    def test_button_login_click(self):
        WebDriverWait(self.instance, 5).until(ec.presence_of_element_located((By.ID, "btnLogin")))
        self.instance.find_element_by_id("btnLogin").click()

    def tearDown(self):
        self.instance.close()

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

Я использую последнюю версию chromedriver (2.43).

...