我正在尝试使用火狐在Aegis Blade上运行一个简单的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.我使用的是Python 2.7,但看起来这不是问题所在。
发布于 2019-10-12 09:46:51
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.
https://stackoverflow.com/questions/58349972
复制相似问题