我正在尝试在pyinstaller的可执行文件中添加Chromedriver。虽然这是可能的,但似乎在尝试在另一台计算机上运行此错误消息。
我已经尝试了一些职位,包括本的一个,但不幸的是,这并没有提供预期的效果。最好的情况是,当chrome exe位于同一文件夹中时,我可以在自己的计算机上运行它,这无济于事。
代码1:
主程序
from selenium import webdriver
driver = webdriver.Chrome()
在另一台PC上运行时,我得到的是:
错误1:
找不到Chrome路径
C:\Users\Aperture Science\Desktop\1>123.exe
Traceback (most recent call last):
File "site-packages\selenium\webdriver\common\service.py", line 74, in start
File "subprocess.py", line 709, in __init__
File "subprocess.py", line 997, in _execute_child
FileNotFoundError: [WinError 2] The system cannot find the file specified
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 42, in <module>
File "main.py", line 33, in main
File "site-packages\selenium\webdriver\chrome\webdriver.py", line 68, in __init__
File "site-packages\selenium\webdriver\common\service.py", line 81, in start
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
[2228] Failed to execute script main
我该如何解决?
我从提供的链接中得到什么:
代码2:
from selenium import webdriver
import os, sys, inspect
current_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile(inspect.currentframe() ))[0]))
chromedriver = os.path.join(current_folder,"chromedriver.exe")
driver = webdriver.Chrome(executable_path = chromedriver)
driver.get("http://www.imdb.com/")
需要设置路径中的Chrome exe,捆绑的Chrome无法读取。因此,包装的铬无法正常使用。
用于--add-binary
在应用程序中捆绑驱动程序:
pyinstaller -F --add-binary "C:\drivers\chromedriver.exe";"." script.py
并用于sys._MEIPASS
获取提取驱动程序的文件夹:
import sys, os, time
from selenium import webdriver
if __name__ == "__main__":
if getattr(sys, 'frozen', False):
# executed as a bundled exe, the driver is in the extracted folder
chromedriver_path = os.path.join(sys._MEIPASS, "chromedriver.exe")
driver = webdriver.Chrome(chromedriver_path)
else:
# executed as a simple script, the driver should be in `PATH`
driver = webdriver.Chrome()
driver.get("https://stackoverflow.com")
time.sleep(5)
driver.quit()
问题内容: 我可以运行多个JVM吗?如果是,那么我如何找到在哪个JVM上加载了特定的类? 问题答案: 您的意思尚不完全清楚,但是: 您可以在同一台计算机上安装多个VM(版本/品牌等) 您可以运行多个进程,无论是相同的JVM版本还是不同的JVM版本 除非您正在运行调试代理或类似的代理,否则我不知道有什么方法可以询问JVM进程是否加载了特定的类。似乎有点奇怪的要求-为什么要这样做?
问题内容: 我正在使用量角器针对Angular应用程序运行测试。它们可以在我的OSX环境上工作,但不能在TeamCity试图运行它的Linux上工作。 当我在本地OSX环境上运行此命令时,它可以工作(也在我的同事计算机上进行了测试): 当我在Linux机器上运行此程序时,或者TeamCity作业尝试运行它时,它失败了: 尝试解决: 我已经看过这个问题,但是独立的webdriver服务器无法解决。
问题内容: 我目前在开发PC上使用Jenkins。我将其安装在开发PC上,因为我对该工具的了解有限。因此我在开发PC上对其进行了测试。现在,我对Jenkins感到很满意,可以作为我在构建过程中的长期“合作伙伴”,并希望将此Jenkins“移动”到专用服务器上。 在此之前,我完成了很少的构建,并从每个构建中存档了工件。特别是,对于我来说,内部版本号对于版本控制非常重要。 如何将所有Jenkins信息
我正在使用量角器对角度应用程序运行测试。他们在我的OSX环境中工作,但在TeamCity尝试运行它的Linux上却不工作。 当我在本地OSX环境中运行此命令时,它可以工作(在我的同事机器上也进行了测试): 当我在linux机器上运行此操作时,或者TeamCity作业尝试运行它时,它会失败: 我已经研究过这个问题,但独立的webdrive服务器不是解决方案。 我研究了这个问题,但我的selenium
问题内容: 我在Linux机器上使用jlink创建了运行时映像。而且我看到该文件夹下的文件夹。这是否意味着我只能在Linux平台上使用此运行时映像?如果是,是否有任何方法可以在一个平台上为另一个平台创建运行时映像(例如,在Linux for Windows上,反之亦然) 问题答案: 该目录用于标头文件,例如,在编译使用JNI和其他本机接口的C / C ++代码时需要这些标头文件。这与无关。 该工具
我在Linux机器上使用jlink创建了运行时映像。我在include文件夹下看到了linux文件夹。这是否意味着我只能在Linux平台上使用此运行时映像?如果是,是否有任何方法可以在一个平台上为另一个平台创建运行时映像(例如,在Linux for Windows上,反之亦然)