如何在Aegis Blad中运行Selenium

2024-06-24 12:27:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在Aegis Blade上使用Firefox运行一个简单的selenium任务。不过,我犯了一些错误

我设置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.

我使用的是Python2.7,但看起来这不是问题所在


Tags: fromimportapiurlgetreturndriverselenium
1条回答
网友
1楼 · 发布于 2024-06-24 12:27:19

AegisBlade将自动检测您的pip依赖项(在本例中为selenium),但对于在包管理器之外定义的依赖项,它没有相同的功能

简而言之,您必须请求AegisBlade在作业运行时使web驱动程序的依赖项可用

There is a selenium example on 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())

谢谢你让我注意到这一点I responded to you on Github with a little more depth.

相关问题 更多 >