Я пытаюсь создать скрипт Python, используя Selenium для входа на сайт; к сожалению, я не могу запустить даже базовый c скрипт, так как сталкиваюсь с постоянными проблемами конфигурации.
Сервер, для которого я создаю этот скрипт и на котором также тестирую, работает следующим образом:
- Ubuntu 16.04.6 LTS
- [Python] 2.7.12 (по умолчанию, 8 октября 2019, 14:14:10) [G CC 5.4.0 20160609]
Этот сценарий будет запускаться на целевой платформе вместе с другими сценариями; поэтому моя гибкость при обновлении с Python 2.7. * до 3. * ограничена. Что касается вопросов, которые я видел; На самом деле я попробовал некоторые альтернативы Selenium с некоторым успехом, однако я вернулся в Selenium, учитывая, что он кажется более надежным, чем альтернативы.
В Интернете есть множество ресурсов, посвященных настройке и созданию Python Сценарий с использованием Selenium в качестве, которое я желаю. Я обнаружил, что сообщения об ошибках, которые я вижу, ни в коем случае не являются уникальными; скорее есть многочисленные статьи, обращающиеся к ним. Пример кода, который я тестирую, представляет собой слегка измененный пример со следующего веб-сайта ( ссылка ). Вот пример кода:
#!/usr/bin/env python
import unittest
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
class TestUbuntuHomepage(unittest.TestCase):
def setUp(self):
firefox_binary = FirefoxBinary('/etc/firefox')
capabilities = DesiredCapabilities().FIREFOX
capabilities["marionette"] = False
self.browser = webdriver.Firefox(capabilities=capabilities,
firefox_binary=firefox_binary,
log_path='/tmp/geckodriver.log')
def testTitle(self):
self.browser.get('http://www.ubuntu.com/')
self.assertIn('Ubuntu', self.browser.title)
def tearDown(self):
self.browser.quit()
if __name__ == '__main__':
unittest.main(verbosity=2)
Параметры, добавленные в функцию webdriver.Firefox()
, устраняют некоторые существующие проблемы, с которыми я столкнулся. Короче, последняя ошибка, которую я получаю, - OSError: [Errno 13] Permission denied
. При запуске сценария я получаю следующий вывод:
testTitle (__main__.TestUbuntuHomepage) ... ERROR
======================================================================
ERROR: testTitle (__main__.TestUbuntuHomepage)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./selenium-sample.py", line 17, in setUp
log_path='/tmp/geckodriver.log')
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 191, in __init__
self.binary, timeout)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 52, in __init__
self.binary.launch_browser(self.profile, timeout=timeout)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 72, in launch_browser
self._start_from_profile_path(self.profile.path)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 95, in _start_from_profile_path
env=self._firefox_env)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
----------------------------------------------------------------------
Ran 1 test in 0.040s
Имеются статьи, которые, как мне кажется, решают эту ошибку, такие как следующие с этого сайта:
IOError: [Errno 13] Отказано в доступе: 'geckodriver.log при запуске Python / Selenium
Я внес изменения в скрипт выше из полезных заметок в этой статье, однако я все еще сталкиваюсь с этим конкретным сообщением об ошибке ; любая помощь приветствуется, как и любые вопросы. Я надеюсь, что я не пропустил никакой соответствующей информации; Python не сильный набор.