我正在尝试通过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代码时,它将调用一个新的浏览器。谁能在这里帮助我说一下出了什么问题以及如何解决。
答案 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。