undetected-chromedriver
undetected-chromedriver copied to clipboard
Message: unknown error: cannot connect to chrome at 127.0.0.1:50276
Hey,
I am running a script on a headless server via ssh. The script was working fine until about a week ago. I made some minor unrelated changes, post which undetected-chromedriver started failing. I am attaching a very simplified code below.
from undetected_chromedriver import find_chrome_executable
from selenium.webdriver.common.by import By
import undetected_chromedriver as uc
import time
from logger import logger
def scrape():
try:
print(find_chrome_executable())
driver = uc.Chrome(headless=True, service_args=["--verbose", "--log-path=cd.log"])
driver.get('https://myexternalip.com/raw')
time.sleep(1)
print(driver.find_elements(By.CSS_SELECTOR, "body")[0].text)
except Exception as e:
print(e)
logger.exception("Exception occured: ")
scrape()
I get the following stdout/stderr
/opt/google/chrome/chrome
Message: unknown error: unable to discover open window in chrome
(Session info: headless chrome=103.0.5060.134)
Stacktrace:
#0 0x559738e2ecd3 <unknown>
#1 0x559738c36968 <unknown>
#2 0x559738c16f49 <unknown>
#3 0x559738c91e1a <unknown>
#4 0x559738c8baa3 <unknown>
#5 0x559738c613fa <unknown>
#6 0x559738c62555 <unknown>
#7 0x559738e762bd <unknown>
#8 0x559738e7a418 <unknown>
#9 0x559738e6036e <unknown>
#10 0x559738e7b078 <unknown>
#11 0x559738e54bb0 <unknown>
#12 0x559738e97d58 <unknown>
#13 0x559738e97ed8 <unknown>
#14 0x559738eb1cfd <unknown>
#15 0x7f14f448e6ba <unknown>
The complete stack trace is
patching driver executable /home/kpsingh/.local/share/undetected_chromedriver/9169c1ae1dc52599_chromedriver
Exception occured:
Traceback (most recent call last):
File "a.py", line 11, in scrape
driver = uc.Chrome(headless=True, service_args=["--verbose", "--log-path=cd.log"])
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/undetected_chromedriver/__init__.py", line 408, in __init__
keep_alive=keep_alive,
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 72, in __init__
service_log_path, service, keep_alive)
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/chromium/webdriver.py", line 97, in __init__
options=options)
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 277, in __init__
self.start_session(capabilities, browser_profile)
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/undetected_chromedriver/__init__.py", line 590, in start_session
capabilities, browser_profile
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 370, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 435, in execute
self.error_handler.check_response(response)
File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: unable to discover open window in chrome
(Session info: headless chrome=103.0.5060.134)
Stacktrace:
#0 0x559738e2ecd3 <unknown>
#1 0x559738c36968 <unknown>
#2 0x559738c16f49 <unknown>
#3 0x559738c91e1a <unknown>
#4 0x559738c8baa3 <unknown>
#5 0x559738c613fa <unknown>
#6 0x559738c62555 <unknown>
#7 0x559738e762bd <unknown>
#8 0x559738e7a418 <unknown>
#9 0x559738e6036e <unknown>
#10 0x559738e7b078 <unknown>
#11 0x559738e54bb0 <unknown>
#12 0x559738e97d58 <unknown>
#13 0x559738e97ed8 <unknown>
#14 0x559738eb1cfd <unknown>
#15 0x7f14f448e6ba <unknown>
Driver verbose logs.
[1658719378.800][INFO]: Starting ChromeDriver 103.0.5060.134 (8ec6fce403b3feb0869b0732eda8bd95011d333c-refs/branch-heads/5060@{#1262}) on port 44138
[1658719378.800][INFO]: Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
[1658719379.303][INFO]: [6c406d0e3de32079e8a9d655c7fe08c8] COMMAND InitSession {
"capabilities": {
"alwaysMatch": {
"browserName": "chrome",
"goog:chromeOptions": {
"args": [ "--remote-debugging-host=127.0.0.1", "--remote-debugging-port=46537", "--user-data-dir=/tmp/tmpb6685gbz", "--lang=en-US", "--no-default-browser-check", "--no-first-run", "--headless", "--window-size=1920,1080", "--start-maximized", "--no-sandbox", "--log-level=0" ],
"binary": "/opt/google/chrome/chrome",
"debuggerAddress": "127.0.0.1:46537",
"extensions": [ ]
},
"pageLoadStrategy": "normal"
},
"firstMatch": [ {
} ]
}
}
[1658719379.304][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.307][DEBUG]: DevTools HTTP Request failed
[1658719379.358][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.359][DEBUG]: DevTools HTTP Request failed
[1658719379.409][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.410][DEBUG]: DevTools HTTP Request failed
[1658719379.460][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.462][DEBUG]: DevTools HTTP Request failed
[1658719379.512][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.513][DEBUG]: DevTools HTTP Request failed
[1658719379.563][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.564][DEBUG]: DevTools HTTP Request failed
[1658719379.614][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.615][DEBUG]: DevTools HTTP Request failed
[1658719379.666][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.666][DEBUG]: DevTools HTTP Request failed
[1658719379.716][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.718][DEBUG]: DevTools HTTP Request failed
[1658719379.768][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719380.036][DEBUG]: DevTools HTTP Response: {
"Browser": "HeadlessChrome/103.0.5060.134",
"Protocol-Version": "1.3",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/103.0.5060.134 Safari/537.36",
"V8-Version": "10.3.174.20",
"WebKit-Version": "537.36 (@8ec6fce403b3feb0869b0732eda8bd95011d333c)",
"webSocketDebuggerUrl": "ws://127.0.0.1:46537/devtools/browser/2b165332-13f9-4fff-a60d-d2c1f94f8d98"
}
[1658719380.036][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/list
[1658719380.618][DEBUG]: DevTools HTTP Response: [ {
"description": "",
"devtoolsFrontendUrl": "/devtools/inspector.html?ws=127.0.0.1:46537/devtools/page/BB65E0E978029AB046DB51A606B084EF",
"id": "BB65E0E978029AB046DB51A606B084EF",
"title": "",
"type": "page",
"url": "about:blank",
"webSocketDebuggerUrl": "ws://127.0.0.1:46537/devtools/page/BB65E0E978029AB046DB51A606B084EF"
} ]
[1658719380.618][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/list
[1658719380.728][DEBUG]: DevTools HTTP Response: [ ]
[1658719380.732][INFO]: [6c406d0e3de32079e8a9d655c7fe08c8] RESPONSE InitSession ERROR unknown error: unable to discover open window in chrome
(Session info: headless chrome=103.0.5060.134)
[1658719380.732][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1658719380.732][DEBUG]: Log type 'browser' lost 0 entries on destruction
Operating System: Ubuntu 16.04.7 LTS Kernel: Linux 4.4.0-210-generic Architecture: x86-64
$ chrome --version Google Chrome 103.0.5060.134 unknown $ which chrome /opt/google/chrome/chrome $ python --version Python 3.7.7
undetected-chromedriver==3.1.5.post4
If I simply try to run selenium headless, I am facing no problems. Any help would be appreciated. Thanks.
I have been trying different things and the verbose driver logs seem to have changed a bit.
[1658781393.276][INFO]: Starting ChromeDriver 103.0.5060.134 (8ec6fce403b3feb0869b0732eda8bd95011d333c-refs/branch-heads/5060@{#1262}) on port 47324
[1658781393.276][INFO]: Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
[1658781393.779][INFO]: [c0a694c101f2727524e75d070370b885] COMMAND InitSession {
"capabilities": {
"alwaysMatch": {
"browserName": "chrome",
"goog:chromeOptions": {
"args": [ "--remote-debugging-host=127.0.0.1", "--remote-debugging-port=37090", "--user-data-dir=/tmp/tmp2mvwlfbl", "--lang=en-US", "--no-default-browser-check", "--no-first-run", "--headless", "--window-size=1920,1080", "--start-maximized", "--no-sandbox", "--log-level=0" ],
"binary": "/usr/bin/google-chrome-stable",
"debuggerAddress": "127.0.0.1:37090",
"extensions": [ ]
},
"pageLoadStrategy": "normal"
},
"firstMatch": [ {
} ]
}
}
[1658781393.779][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.781][DEBUG]: DevTools HTTP Request failed
[1658781393.831][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.833][DEBUG]: DevTools HTTP Request failed
[1658781393.883][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.884][DEBUG]: DevTools HTTP Request failed
[1658781393.934][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.935][DEBUG]: DevTools HTTP Request failed
[1658781393.985][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.986][DEBUG]: DevTools HTTP Request failed
.
.
.
.
.
.
[1658781453.688][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781453.689][DEBUG]: DevTools HTTP Request failed
[1658781453.739][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781453.740][DEBUG]: DevTools HTTP Request failed
[1658781453.790][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781453.791][DEBUG]: DevTools HTTP Request failed
[1658781453.796][INFO]: [c0a694c101f2727524e75d070370b885] RESPONSE InitSession ERROR unknown error: cannot connect to chrome at 127.0.0.1:37090
from chrome not reachable
[1658781453.796][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1658781453.796][DEBUG]: Log type 'browser' lost 0 entries on destruction```
try to add incognito into your driver.
options.add_argument("--incognito")
Using incognito option didn't work.
Any news? Same is happening to me. It is strangely working from PyCharm but when I start it from a crontab on Ubuntu it doesnβt work
Nope, my work has come to a complete halt because of this. Cant find any solution. I have tried almost every trick posted on any related problems thread.
I've noticed that whenever I use the parameter "--user-data-dir" at the driver options:
options.add_argument("--user-data-dir=c:\WhateverFolder")
If I delete that "c:\WhateverFolder", it works again, but of course, I must re-login on every site.
Do you solve this question?
I had the same problem so I did the following: 1- google chrome was running using a virtual monitor see this thread: https://stackoverflow.com/questions/36582594/a-virtual-display-for-ubuntu-server 2- after updating and restarting the server I added the option ('--headless') to the driver and ran it, 3- the surprise was that it ran normally, then I deleted that headless option and ran it again and it worked with no problems 4- other solution is to add the option ('--no-sandbox') and sometimes it works with this 4- so in conclusion it's a bug related to the driver options, I hope they fix it
I have the same problem if I use options.add_argument("--user-data-dir=c:\WhateverFolder")
as @Habidis mentioned.
It works fine with fresh folder some amount of time but than browser both loads too long or fails with error.
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:57455
from chrome not reachable
Stacktrace:
#0 0x5650cfd6e693 <unknown>
#1 0x5650cfb679db <unknown>
#2 0x5650cfb5781e <unknown>
#3 0x5650cfb90677 <unknown>
#4 0x5650cfb87e9f <unknown>
#5 0x5650cfbc3953 <unknown>
#6 0x5650cfbbd743 <unknown>
#7 0x5650cfb93533 <unknown>
#8 0x5650cfb94715 <unknown>
#9 0x5650cfdbe7bd <unknown>
#10 0x5650cfdc1bf9 <unknown>
#11 0x5650cfda3f2e <unknown>
#12 0x5650cfdc29b3 <unknown>
#13 0x5650cfd97e4f <unknown>
#14 0x5650cfde1ea8 <unknown>
#15 0x5650cfde2052 <unknown>
#16 0x5650cfdfc71f <unknown>
#17 0x7f923f778e2d <unknown>
Process finished with exit code 1
Does anyone knows how to fix this error?
Heys Guys, I have the same problems.
following
Heys Guys, I have the same problems.
try adding these arguments to the driver
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-setuid-sandbox")
Is there any update on this issue, i have tried to add arguments mentioned by @smsajjadzaidi but it still gives this error
Faced the same problem, occurred using python 3.7. Solution was to update to python 3.8.
Add this all:
options.add_argument("--disable-extensions") options.add_argument('--disable-application-cache') options.add_argument('--disable-gpu') options.add_argument("--no-sandbox") options.add_argument("--disable-setuid-sandbox") options.add_argument("--disable-dev-shm-usage")
And try to running in headless: options.add_argument("--headless")
Same as update to last version and use chrome driver manager instead of path or local variable
If still not working then clean your linux and try again
Edit: the 2 dumbs that put a π are idiots that even didnt tested, Just try and youll see it works
I had the same issue when running uc inside a Python Docker container (based on python:3.10
which is basically some minimal Debian). Here are the steps that got uc working inside the container:
- Install Chrome
DEBIAN_FRONTEND=noninteractive && \
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub > /usr/share/keyrings/chrome.pub && \
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/chrome.pub] http://dl.google.com/linux/chrome/deb/ stable main' > /etc/apt/sources.list.d/google-chrome.list && \
apt update -y && \
apt install -y google-chrome-stable
- Install the X Virtual Framebuffer display server
apt install xvfb -y
- Set DISPLAY environmental variable to
:1
export DISPLAY=:1
- Start a Xvfb process in the background
Xvfb $DISPLAY -screen $DISPLAY 1280x1024x16 &
- Run a minimal py script with uc
python3 example.py
Here's the example script I used:
import undetected_chromedriver as uc
from time import sleep
log_path = "/chromedriver.log"
url = "https://check.torproject.org/"
chrome_driver = uc.Chrome(service_log_path=log_path)
chrome_driver.get(url)
sleep(5)
scraped_page = chrome_driver.page_source
chrome_driver.quit()
print(scraped_page)
Note that I'm running the driver without the --headless
argument and it seems to work fine.
All of it is a truncated version of this Docker image (requires login to Docker hub) by @ultrafunkamsterdam.
I know that the original question was not about running uc inside a Docker container, but I hope it could give you some ideas.
Thanks martroben I've merged martroben and undetected-chromedriver into Image
So can easy to run Chrome driver in container Usage:
FROM knthony/run_chrome_driver_in_container
CMD ["python", "example.py"]
@michaeloo0 i tried your image and it throws me selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:39597 from chrome not reachable
any ideas ?
yes,in this image the version of chrome is 108, so please using follow script to recreate docker image
FROM ultrafunk/undetected-chromedriver:3.20-chrome-lateinstall
RUN DEBIAN_FRONTEND=noninteractive
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub > /usr/share/keyrings/chrome.pub
RUN echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/chrome.pub] http://dl.google.com/linux/chrome/deb/ stable main' > /etc/apt/sources.list.d/google-chrome.list
RUN apt update -y
RUN apt install -y google-chrome-stable
RUN apt install xvfb -y
RUN export DISPLAY=:1
RUN Xvfb $DISPLAY -screen $DISPLAY 1280x1024x16 &
Just like @Habidis said, deleting the profile folder works for me.
Found a solution for the problem. forget about all the extra arguments and updates/ etc.
If you are using the DIR folder that currently has a browser profile open. it will not work. you have to close everything first and then run it. That was the workaround for it for me.
@kSinghParth @wundergeu @Habidis
Thank you @Anticope12 your solution worked. Just need to close other instances of Chrome before running script !!
I've been frustrated the last couple weeks as my scripts were hanging with the following error message:
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:57930 from chrome not reachable
Tried all the different arguments, but nothing worked. Now working again, just need to close browser first!
@phl0yd , @Anticope12 hi,
Can you share your code here, please? Although I closed the Chrome app in the background, it didn't work on my end.
@asimptot Not sure if all these options are necessary, but this is the code I am currently running.
Before you change your code, you may want to open task manager and make sure every Chrome task is shut down.
import undetected_chromedriver as uc
undetected_chromedriver
options = uc.ChromeOptions() options.add_argument('--incognito') options.add_argument("--window-size=1920,1080") options.add_argument("--start-maximized")
#added new options since issues in Jan 2023 https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/743 options.add_argument("--disable-extensions") options.add_argument("--disable-application-cache") options.add_argument("--disable-gpu") options.add_argument("--no-sandbox") options.add_argument("--disable-setuid-sandbox") options.add_argument("--disable-dev-shm-usage") #options.add_argument("--headless") #can enable or disable headless, up to your needs
driver = uc.Chrome(use_subprocess=True,options = options)
with driver: driver.get('https://www.yourwebsite.com')
......
Here is my code and that worked for me!
chrome_options = uc.ChromeOptions()
chrome_options.add_argument('--headless=new')
self.browser = uc.Chrome(options=chrome_options, version_main=110)
yeah congrats for repeating my solution πππππ
@asimptot @phl0yd @Anticope12 this solution is not working in a docker file unfortunately
@rtrive what kind of issue did you get?