Как запустить Selenium в Aegis Blade - PullRequest
1 голос
/ 12 октября 2019

Я пытаюсь запустить простую задачу селена с помощью Firefox на Aegis Blade . Я нажимаю некоторые ошибки.

Я установил свой ключ API:

$ export AEGISBLADE_API_KEY="my-api-key"

Затем запустите этот код:

from aegisblade import aegisblade
from selenium import webdriver

def gethtml(url):
    driver = webdriver.Firefox()
    driver.get(url)

    return driver.page_source


if __name__ == '__main__':
    print("Running AegisBlade job")
    job = aegisblade.run(lambda: gethtml("https://github.com"))

    print("Waiting for job to finish...")
    print(job.get_return_value())

Я получаю следующую ошибку, хотя:

Internal Error Type: WebDriverException
Internal Error: Message: 'geckodriver' executable needs to be in PATH.

Я использую Python 2.7, но проблема не в этом.

1 Ответ

0 голосов
/ 12 октября 2019

AegisBlade автоматически обнаружит ваши пип-зависимости (в данном случае селен), но не будет иметь такой же функциональности для зависимостей, определенных вне менеджера пакетов.

Короче говоря, вы должны запросить, чтобы AegisBlade сделалЗависимости веб-драйвера доступны во время выполнения вашей работы.

На Github есть пример селена.

Вот ваш код, слегка измененный, чтобы он работал:

from aegisblade import aegisblade, JobConfig, Capability
from selenium import webdriver

def gethtml(url):
    driver = webdriver.Firefox()
    driver.get(url)

    return driver.page_source


if __name__ == '__main__':
    print("Running AegisBlade job")
    config = JobConfig().with_capability(Capability.firefox)
    job = aegisblade.run(lambda: gethtml("https://github.com"), config)

    print("Waiting for job to finish...")
    print(job.get_return_value())

PS Спасибо, что обратили на это мое внимание. Я ответил вам на Github немного глубже.

...