WebHU - Programozási kérdések és válaszok

PermissionError: [Errno 13] Engedély megtagadva: '/content/' Üzenet: A végrehajtható fájlnak hibás engedélyei vannak a Google-Colabotory és a Selenium Python szolgáltatásban

Python projektjeimhez a Google Colabot használtam. Szeretném megtanulni és megvalósítani a szelént a Google Colab segítségével. Megpróbálok bejelentkezni a Facebookra az alábbi módon. De elakadtam az "Engedélyhibánál". Megnéztem a különböző bejegyzéseket, és megpróbáltam olyan javasolt megoldásokat végrehajtani, mint például (Selén a MAC-on, Üzenet: Lehet, hogy a 'chromedriver' futtatható fájlnak rossz engedélyei vannak), de nem segített.

Amit kipróbáltam.

  1. Hivatkozott https://sites.google.com/a/chromium.org/chromedriver/home cikket a javasolt módon
  2. A chmod 755-öt használta a végrehajtható engedélyek engedélyezéséhez
  3. Hivatkozott a „chromedriver.exe” fájlra a Colab környezet különböző mappáiban, de nem szerencsés

A kód:

import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

user_name = 'Username'
password = 'Password'

os.chmod('/content/chromedriver.exe', 755)
driver = webdriver.Chrome(executable_path='/content/')
driver.get("https://www.facebook.com")

element = driver.find_element_by_id("email")
element.send_keys(user_name)

element = driver.find_element_by_id("pass")
element.send_keys(password)

element.send_keys(Keys.RETURN)

driver.close()

Teljes hiba:

---------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/common/service.py in start(self)
     75                                             stderr=self.log_file,
---> 76                                             stdin=PIPE)
     77         except TypeError:

4 frames
PermissionError: [Errno 13] Permission denied: '/content/'

During handling of the above exception, another exception occurred:

WebDriverException                        Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/common/service.py in start(self)
     86                 raise WebDriverException(
     87                     "'%s' executable may have wrong permissions. %s" % (
---> 88                         os.path.basename(self.path), self.start_error_message)
     89                 )
     90             else:

WebDriverException: Message: '' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

Pillanatkép a Colab-környezetemről

adja meg itt a kép leírását

Segítene valaki a probléma megoldásában?

PS: Ugyanez a kód működik a Jupyter Notebook, Eclipse IDE használatával. De hosszú távon meg akarom szüntetni a Jupyter notebookoktól való függőségemet, és a felhő alapú notebook-környezetre szeretnék támaszkodni, mint például a Google Colab, amely elméletileg lehetővé tenné, hogy a programkönyvtárak/kompatibilitás/engedélyek/stb. problémák megoldása helyett a kódra koncentráljak.


  • Rekurzívan chmod-ot használtál a -r használatával? 10.12.2019

Válaszok:


1

Ez a hibaüzenet...

PermissionError: [Errno 13] Permission denied: '/content/'
.
WebDriverException: Message: '' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

...azt jelenti, hogy a WebDriver végrehajtható fájl nem észlelhető, ezért Selenium gyanítja, hogy a végrehajtható fájlnak rossz engedélyei vannak.


Megoldás

A Kulcs executable_path átadása közben meg kell adnia a WebDriver változatnév abszolút elérési útját, azaz: chromedriver az alábbiak szerint:

driver = webdriver.Chrome(executable_path='/content/chromedriver')
                          webdriver variant name ^^^chromedriver^^^ needs to be appended

Hivatkozások

Néhány releváns vitát találhat itt:

10.12.2019
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..