Hello,
Would it be possible to run a workflow that contains python tool with chromiumdriver.exe on Alteryx server?
The workflow is to scrape website using selenium by opening and scroll down a chrome browser.
It runs fine on designer, but it gives me an error message when I tried to run the workflow on server.
SessionNotCreatedException: Message: session not created from disconnected: Unable to receive message from renderer (Session info: chrome=92.0.4515.107)
Solved! Go to Solution.
@knozawa does the Alteryx Server machine have the chromium driver installed? I assume you downloaded it from
Thank you for replying. Yes, I installed the chromium driver at the same file path on the server machine.
This is how I am defining the path for the exe location:
options = webdriver.ChromeOptions();
options.add_argument("--no-sandbox")
options.add_argument("start-maximized");
wd = webdriver.Chrome(options=options,executable_path="C:/Temp/chromedriver.exe")
wd.get(webpage)
I actually followed the article to implement this. The article was awesome. It worked on the desktop, but not on the Alteryx server through browser.
@knozawa to rule this out, do you know if this works fine on the Designer that is installed on the Server machine itself?
Yes. The workflow ran successfully on the designer on the server machine. So, I'm not sure why I still get the error when I try to run the workflow through the browser.
Sincerely,
knozawa
@knozawa it seems that the Chrome Driver is not able to kick off a new browser. Im wondering whether its the way you have defined the web driver and how its running on the Server.
wd = webdriver.Chrome(options=options,executable_path="C:/Temp/chromedriver.exe"
Could you try to convert the path into a UNC format, so we don't refer to the "C" drive, but the UNC version.
Here's a bit more info on this:
https://community.alteryx.com/t5/Alteryx-Server-Knowledge-Base/Workflow-Dependencies/ta-p/49696
It might also be a firewall/virus scan issue that's blocking this.
@RishiK
Thank you for your suggestions!
I cleaned up the disk space on the server machine. I also updated the location of the exe file to use the network drive instead of C drive. After that, the workflow successfully ran on the browser. I'm not sure why C drive did not work because I thought C:/Temp is the UNC format, but the network drive worked.
Sincerely,
knozawa
I have created a process where Alteryx download CSV file from a website using Selenium, Chrome libraries.
However, when I execute it on designer its working fine but when I deploy it on server I am getting an error.
Server is not able to read path of Chromium.
I tried on local path as well as on share drive.
I need to understand how to add path on Workflow dependencies directly.
Since my path is mentioned in pyhton script.
Refer code snippet:
from ayx import Alteryx
from ayx import Package
!pip install selenium
!pip install webdriver_manager
!pip install tqdm
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
# driver = webdriver.Chrome("C:/Program Files/Alteryx/bin/Plugins/chromedriver.exe")
driver = webdriver.Chrome("A:/chromedriver_win32/chromedriver.exe")
driver.get("https://publicdata.adx.ae/_layouts/15/ReportServer/RSViewerPageadxpublic.aspx?rv:RelativeReportUrl=/...")
WebDriverWait(driver,30);
time.sleep(5)
Error log
WebDriverException Traceback (most recent call last) <ipython-input-2-8a12728b3852> in <module> 16 # driver = webdriver.Chrome("C:/Program Files/Alteryx/bin/Plugins/chromedriver.exe") 17 driver = webdriver.Chrome("A:/chromedriver_win32/chromedriver.exe") ---> 18 driver.get("https://publicdata.adx.ae/_layouts/15/ReportServer/RSViewerPageadxpublic.aspx?rv:RelativeReportUrl=/...") 19 20 WebDriverWait(driver,30); c:\program files\alteryx\bin\miniconda3\envs\designerbasetools_venv\lib\site-packages\selenium\webdriver\remote\webdriver.py in get(self, url) 453 Loads a web page in the current browser session. 454 """ --> 455 self.execute(Command.GET, {"url": url}) 456 457 @property c:\program files\alteryx\bin\miniconda3\envs\designerbasetools_venv\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute(self, driver_command, params) 442 response = self.command_executor.execute(driver_command, params) 443 if response: --> 444 self.error_handler.check_response(response) 445 response["value"] = self._unwrap_value(response.get("value", None)) 446 return response c:\program files\alteryx\bin\miniconda3\envs\designerbasetools_venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py in check_response(self, response) 247 alert_text = value["alert"].get("text") 248 raise exception_class(message, screen, stacktrace, alert_text) # type: ignore[call-arg] # mypy is not smart enough here --> 249 raise exception_class(message, screen, stacktrace) WebDriverException: Message: unknown error: net::ERR_CONNECTION_TIMED_OUT (Session info: chrome=100.0.4896.60) Stacktrace: Backtrace: Ordinal0 [0x00E37413+2389011] Ordinal0 [0x00DC9F61+1941345] Ordinal0 [0x00CBC658+837208] Ordinal0 [0x00CB8F28+823080] Ordinal0 [0x00CAE27D+778877] Ordinal0 [0x00CAEE3D+781885] Ordinal0 [0x00CAE48A+779402] Ordinal0 [0x00CADA86+776838] Ordinal0 [0x00CAC995+772501] Ordinal0 [0x00CACE6D+773741] Ordinal0 [0x00CBDE5A+843354] Ordinal0 [0x00D149BD+1198525] Ordinal0 [0x00D0414C+1130828] Ordinal0 [0x00D14302+1196802] Ordinal0 [0x00D03F66+1130342] Ordinal0 [0x00CDE546+976198] Ordinal0 [0x00CDF456+980054] GetHandleVerifier [0x00FE9632+1727522] GetHandleVerifier [0x0109BA4D+2457661] GetHandleVerifier [0x00ECEB81+569713] GetHandleVerifier [0x00ECDD76+566118] Ordinal0 [0x00DD0B2B+1968939] Ordinal0 [0x00DD5988+1989000] Ordinal0 [0x00DD5A75+1989237] Ordinal0 [0x00DDECB1+2026673] BaseThreadInitThunk [0x75CC6709+25] RtlGetFullPathName_UEx [0x779F7D1D+173] RtlGetFullPathName_UEx [0x779F7CEB+123] (ToolId: 1)