因为,@P.T. 的上一个回答。在 Windows 7 上对我不起作用,我从他的建议开始并让它在 Windows 上运行。这是适用于 Windows 7 用户的有效解决方案。
第 1 步:安装 BASH 和 JQ 并确认它们在您的 Windows 机器上运行
- 下载 bash(适用于 Windows 10
https://itsfoss.com/install-bash-on-windows/ ;适用于 Windows 7
在这里下载最新的:
https://sourceforge.net/projects/win-bash/files/shell-complete/latest/ ;对于 Windows Server 2012 或任何已安装 Git 的 Windows 操作系统,您已经在
C:\Program Files\Git\usr\bin 或 C:\Program Files (x86)\Git\usr\bin 安装了 bash.exe 和 sh.exe
)
- 安装 bash - 对于 Windows 7/ 下载它并将 zip 文件解压缩到一个目录。
- 下载
jq(https://stedolan.github.io/jq/)并安装在与bash相同的目录位置
- 确保将上述目录(对于 Windows 7 - 您将 bash zip 文件提取到的位置;对于具有 git 的其他适用操作系统,它的安装路径)添加到您的 PATH 系统环境变量中。
- 安装上述内容并将其添加到您的 PATH 后,关闭所有并重新打开 Webstorm 和您希望在其中运行工作的任何 CMD 窗口。
- 只需在 Windows 命令提示符下键入
bash 即可测试它是否实际安装
C:\git\> bash 。
这样做应该会产生一个像这样的 bash cmd 提示符
bash$
第 2 步:添加自定义文件以将 Chromedriver 重定向到用户调试日志
将以下文件添加到项目的顶层(无论您的 protractor-conf.js 位于何处)。这些文件允许我们将自定义调试开关添加到 chromedriver.exe 执行中。
请注意,这是必要的,因为这些开关不会通过量角器公开,并且不能像您通常期望的那样通过 chromeOptions/args 标志直接在 protractor.conf.js 文件中完成
chromedriver.cmd -- 确切来源如下所示:
bash protractor-chromedriver.sh %*
protractor-chromedriver.sh -- 确切来源如下所示:
TMPDIR="$(dirname $0)/tmp"
NODE_MODULES="$(dirname $0)/node_modules"
SELENIUM="${NODE_MODULES}/protractor/node_modules/webdriver-manager/selenium"
UPDATECONFIG="${SELENIUM}/update-config.json"
EXEFILENAME="$(cat ${UPDATECONFIG} | jq .chrome.last | tr -d '""')"
CHROMEDRIVER="${SELENIUM}/${EXEFILENAME##*'\\'}"
LOG="${TMPDIR}/chromedriver.$$.log"
fatal() {
# Dump to stderr because that seems reasonable
echo >&2 "$0: ERROR: $*"
# Dump to a logfile because webdriver redirects stderr to /dev/null (?!)
echo >"${LOG}" "$0: ERROR: $*"
exit 11
}
[ ! -x "$CHROMEDRIVER" ] && fatal "Cannot find chromedriver: $CHROMEDRIVER"
exec "${CHROMEDRIVER}" --verbose --log-path="${LOG}" "$@"
/tmp -- 在项目的顶层创建此目录(与protractor.conf.js 文件的位置相同。
第 3 步:更新 protractor.conf.js 文件。
在protractor.conf.js 文件中,将以下行添加为exports.config 对象中的属性。如:
exports.config = {
.. ..
chromeDriver: 'chromedriver.cmd',
.. ..
第 4 步:启动测试
您的测试现在应该运行,如果 chrome 驱动程序输出任何日志信息,它将出现在您项目下 tmp 目录中名为 chromedriver.???.log 的文件中。
重要提示
此脚本设置假定您在项目的本地 node_modules 目录中安装并运行量角器(及其下的 chrome 驱动程序)。这就是我运行代码的方式,因为我希望它在构建过程/周期中完全独立并重新生成。如果您已全局安装 protractor/chromedriver,则应更改 protractor-chromedriver.sh 文件中的 CHROMEDRIVER 变量以匹配您安装的 protractor/chrome 驱动程序。
希望有帮助。