Использовать существующий браузер Chrome с портом удаленной отладки с помощью RobotFramework - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь использовать существующий экземпляр Google Chrome, используя RobotFramework (SeleniumLibrary). Я запускаю экземпляр Chrome, как это

chrome.exe --remote-debugging-port=9289 --user-data-dir="D:\gcdata"

Это мой код в рамке робота

${options}= Evaluat      sys.modules['selenium.webdriver'].ChromeOptions()  sys,selenium.webdriver  
${prefs}=       Create Dictionary   debuggerAddress     127.0.0.1:9289
Call Method    ${options}           add_experimental_option    prefs    ${prefs}
Create WebDriver    Chrome  chrome_options=${options}       

Когда я запускаю код RobotFramework, он запускает новый браузер. Может ли кто-нибудь помочь мне рассказать, что происходит и как это исправить.

1 Ответ

0 голосов
/ 15 ноября 2018

Используя самые последние версии модуля Python Selenium, Chrome и ChromeDriver, следующий скрипт робота подключится к уже запущенному Chrome, запущенному с помощью:

chrome.exe --remote-debugging-port=9289 --user-data-dir="C:\temp\gdata"

chrome_debugger.robot

*** Settings ***
Library    SeleniumLibrary  
Library    Collections      

*** Test Cases ***
TC

    ${ChromeOptions}=     Evaluate      sys.modules['selenium.webdriver'].ChromeOptions()  sys,selenium.webdriver 

    # Method debugger_address is not callable so convert to Capabilities Dictionary and set it manually
    ${ChromeCapabilities}=     Call Method     ${ChromeOptions}    to_capabilities
    Set To Dictionary    ${ChromeCapabilities["goog:chromeOptions"]}    debuggerAddress    127.0.0.1:9289

    # Instead of using the Chrome Options use Capabilities.
    Create WebDriver    Chrome    desired_capabilities=${ChromeCapabilities}
    Go To    http://cnn.com

Несмотря на то, что класс ChromeOptions ( GitHub ) имеет метод debugger_address(self, value), вызов этого метода из Robot Framework возвращает ошибку. Поэтому преобразование класса ChromeOptions в словарь Capabilities и добавление его в словарь вручную перед передачей его веб-драйверу через аргумент desired_capabilities.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...