Chrome not opening when run "Open Chrome browser" or "Open Browser keyword"

Hello ,

I am getting the following error while trying to run robot framework keyword

Code:
“Open Chrome Browser ${URL} maximized=true”
“Open Browser ${URL} browser=chrome executable_path=C:\chromedriver_win32\chromedriver.exe”

Error : ValueError: Timeout value connect was <object object at 0x0000016B89BA7D10>, but it must be an int, float or None.

Chrome Version :112.0.5615.138 (Official Build) (64-bit)
Chrome driver version : 112.0.5615.49

Can any one pls suggest to solve this

Is there more error messages within the stacktrace? The error message seems to indicate that you have passed in somewhere an argument, assuming it is related to timeouts, to some keyword but it is not in the correct format (expecting an int, float or none). If it is the Open Chrome Browser keyword, which appears to be a custom keyword just within your code, that is failing I would look down there to see what is happening.

Thanks for your reply…
It is not custom keyword i am not passing anything except URL and maximize as you see above

It was not clear from the formatting of the code above. I was going to say you could use a code block … but I can’t find that here … I don’t use the forum as much as I do the Robot Framework Slack. So I am still about lost as to what that first line is.

Something else that is a bit worrisome or questionable is the path to the chromedriver. Windows paths and the backwards slashes are a bit tricky within Robot Framework. Haven’t worked with them in a while but I would double check that that argument is getting across as expected. You should be able to check the log and see that it is indeed being read as you expect. You could also, just as a quick test remove that. If the driver is not on the system path you should get a new error. But that would help determine if that argument is a problem.

*** Settings ***
Library SeleniumLibrary
Test Setup Begin Web Test
Test Teardown End Web Test

*** Variables ***
${BASE_URL} = about:blank
${CHROME_BROWSER} = chrome
${HOME_PAGE} = https://…
${USERNAME} = login-username
${PASSWORD} = login-password
${LOGIN_BUTTON} = //button[@type=‘submit’]
@{VALID_CREDENTIALS} = Test Test123

*** Test Cases ***
User should sign-in to use the service
Page Loaded
Pass Valid Credentials

*** Keywords ***
Begin Web Test
open browser ${BASE_URL} ${HEADLESS_BROWSER}
set window size 1920 1080
maximize browser window

End Web Test
close browser

Page Loaded
SeleniumLibrary.go to ${HOME_PAGE}

Pass Valid Credentials
SeleniumLibrary.input text ${USERNAME} ${VALID_CREDENTIALS}[0]
SeleniumLibrary.input text ${PASSWORD} ${VALID_CREDENTIALS}[1]
SeleniumLibrary.click button ${LOGIN_BUTTON}

I can confirm (and reproduce this): for example, I definitely see (but can fix by updating) this on all platforms with python 3.8 with:

package broken working
selenium 3.141.0 4.9.1
robotframework-seleniumlibrary 4.5.0 5.1.3

Here’s some debug output:

	Traceback (most recent call last):
  File "~/site-packages/SeleniumLibrary/__init__.py", line 471, in run_keyword
    return DynamicCore.run_keyword(self, name, args, kwargs)
  File "~/site-packages/robotlibcore.py", line 103, in run_keyword
    return self.keywords[name](*args, **(kwargs or {}))
  File "~/site-packages/SeleniumLibrary/keywords/browsermanagement.py", line 285, in open_browser
    return self._make_new_browser(url, browser, alias, remote_url,
  File "~/site-packages/SeleniumLibrary/keywords/browsermanagement.py", line 298, in _make_new_browser
    driver = self._make_driver(browser, desired_capabilities,
  File "~/site-packages/SeleniumLibrary/keywords/browsermanagement.py", line 669, in _make_driver
    driver = self._webdriver_creator.create_driver(
  File "~/site-packages/SeleniumLibrary/keywords/webdrivertools/webdrivertools.py", line 75, in create_driver
    return creation_method(desired_capabilities, remote_url, profile_dir, options=options,
  File "~/site-packages/SeleniumLibrary/keywords/webdrivertools/webdrivertools.py", line 190, in create_headless_firefox
    return self.create_firefox(desired_capabilities, remote_url, ff_profile_dir, options, service_log_path,
  File "~/site-packages/SeleniumLibrary/keywords/webdrivertools/webdrivertools.py", line 156, in create_firefox
    return webdriver.Firefox(options=options, firefox_profile=profile,
  File "~/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
    RemoteWebDriver.__init__(
  File "~/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "~/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "~/site-packages/selenium/webdriver/remote/webdriver.py", line 319, in execute
    response = self.command_executor.execute(driver_command, params)
  File "~/site-packages/selenium/webdriver/remote/remote_connection.py", line 374, in execute
    return self._request(command_info[0], url, body=data)
  File "~/site-packages/selenium/webdriver/remote/remote_connection.py", line 397, in _request
    resp = self._conn.request(method, url, body=body, headers=headers)
  File "~/site-packages/urllib3/_request_methods.py", line 118, in request
    return self.request_encode_body(
  File "~/site-packages/urllib3/_request_methods.py", line 217, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "~/site-packages/urllib3/poolmanager.py", line 422, in urlopen
    conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
  File "~/site-packages/urllib3/poolmanager.py", line 303, in connection_from_host
    return self.connection_from_context(request_context)
  File "~/site-packages/urllib3/poolmanager.py", line 328, in connection_from_context
    return self.connection_from_pool_key(pool_key, request_context=request_context)
  File "~/site-packages/urllib3/poolmanager.py", line 351, in connection_from_pool_key
    pool = self._new_pool(scheme, host, port, request_context=request_context)
  File "~/site-packages/urllib3/poolmanager.py", line 265, in _new_pool
    return pool_cls(host, port, **request_context)
  File "~/site-packages/urllib3/connectionpool.py", line 196, in __init__
    timeout = Timeout.from_float(timeout)
  File "~/site-packages/urllib3/util/timeout.py", line 190, in from_float
    return Timeout(read=timeout, connect=timeout)
  File "~/site-packages/urllib3/util/timeout.py", line 119, in __init__
    self._connect = self._validate_timeout(connect, "connect")
  File "~/site-packages/urllib3/util/timeout.py", line 156, in _validate_timeout
    raise ValueError(
ValueError: Timeout value connect was <object object at 0x7fea6b73f230>, but it must be an int, float or None.

what version is urllib3?
In my case, installing urllib3 below <2.0 solves the problem.

1 Like