使用RobotFramework将现有的Chrome浏览器与远程调试端口一起使用

时间:2018-11-15 15:05:18

标签: selenium-webdriver selenium-chromedriver robotframework

我正在尝试通过RobotFramework(SeleniumLibrary)使用现有的Google chrome实例。我正在启动chrome实例

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

这是我在robotframework中的代码

${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 :(得分:2)

使用Python Selenium Module,Chrome和ChromeDriver的最新版本,以下机器人脚本将连接到已开始使用chrome启动的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参数将其传递给webdriver。