0

it's me again

I'm having problem to run a selenium script coded in python, i have two users in Ubuntu Server, fabio user and rundeck user,

In fabio user the script works perfect but in rundeck user the script returns error, can anyone help?

I'm using Ubuntu Server 20.4.3 LTS, Google Chrome 103.0.5060.134, ChromeDriver 103.0.5060.134 and Selenium version 4.3.0.

Here my script:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

chrome_options = Options()
chrome_options.add_argument('--headless')
# optional
chrome_options.add_argument('--no-sandbox')
# optional
chrome_options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options)
driver.get('http://192.168.15.1/me_configuracao_avancada.asp')
user = driver.find_element(By.ID, "txtUser")
user.send_keys("support")
pass_ = driver.find_element(By.ID, "txtPass")
pass_.send_keys("password")
btnLogin = driver.find_element(By.ID, "btnLogin")
btnLogin.click()
driver.get('http://192.168.15.1/reboot.asp',)
reboot = driver.find_element(By.ID, "btnReboot")
reboot.click()
alert = driver.switch_to.alert
alert.accept()
print("Modem Reiniciado!")

And this is the error i receive when i run the script on rundeck user:

/tmp/865-81373-rundeck-node-01-dispatch-script.tmp.py:16: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options)
Traceback (most recent call last):
  File "/tmp/865-81373-rundeck-node-01-dispatch-script.tmp.py", line 16, in <module>
    driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options)
  File "/home/rundeck/.local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__
    super().__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/home/rundeck/.local/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 92, in __init__
    super().__init__(
  File "/home/rundeck/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 277, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/rundeck/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 370, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/rundeck/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 435, in execute
    self.error_handler.check_response(response)
  File "/home/rundeck/.local/lib/python3.8/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: DevToolsActivePort file doesn't exist
Stacktrace:
#0 0x562988d36cd3 <unknown>
#1 0x562988b3e968 <unknown>
#2 0x562988b65e92 <unknown>
#3 0x562988b62370 <unknown>
#4 0x562988b5e8fa <unknown>
#5 0x562988b9994a <unknown>
#6 0x562988b93aa3 <unknown>
#7 0x562988b693fa <unknown>
#8 0x562988b6a555 <unknown>
#9 0x562988d7e2bd <unknown>
#10 0x562988d82418 <unknown>
#11 0x562988d6836e <unknown>
#12 0x562988d83078 <unknown>
#13 0x562988d5cbb0 <unknown>
#14 0x562988d9fd58 <unknown>
#15 0x562988d9fed8 <unknown>
#16 0x562988db9cfd <unknown>
#17 0x7fa24a700609 <unknown>

the problem is, i need to run the script in rundeck user

Fabio Rodrigues
  • 137
  • 1
  • 2
  • 6
  • 1
    This means the browser didn't drop the file that gives the driver the sessionID. Try logging in as that user and running the browser. (at least once... so that it can create the needed directories) If this does not help, check permissions for the user to launch Chrome in dev mode. – pcalkins Aug 02 '22 at 19:39
  • Actually i reboot the machine and then worked in rundeck user, thanks! – Fabio Rodrigues Aug 02 '22 at 19:57

1 Answers1

4

I was also facing similar issue and after adding below mentioned args, issue resolved.

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-setuid-sandbox')
chrome_options.add_argument('--remote-debugging-port=9222')
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('start-maximized')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')