首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Aegis Blade中运行Selenium

如何在Aegis Blade中运行Selenium
EN

Stack Overflow用户
提问于 2019-10-12 08:58:07
回答 1查看 33关注 0票数 1

我正在尝试使用火狐在Aegis Blade上运行一个简单的selenium任务。不过,我遇到了一些错误。

我设置了我的api密钥:

代码语言:javascript
复制
$ export AEGISBLADE_API_KEY="my-api-key"

然后运行以下代码:

代码语言:javascript
复制
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())

不过,我收到以下错误:

代码语言:javascript
复制
Internal Error Type: WebDriverException
Internal Error: Message: 'geckodriver' executable needs to be in PATH.

我使用的是Python 2.7,但看起来这不是问题所在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-12 09:46:51

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

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

There is a selenium example on Github.

以下是您的代码,稍作修改,使其正常工作:

代码语言:javascript
复制
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.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58349972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档