windows使用bat编写自启动崭新浏览器
本文是为了优化前文selenium&playwright指定浏览器操作,编写了一个bat单独运行。(基于windows)
这样使用这个工具的人员可以直接在自己电脑上双击bat后再双击exe就可以直接运行程序,无需配置任何环境。
接着前文解决一下报错
报错playwright._impl._api_types.Error
在后续集成好的代码运行过程中会出现如下报错
playwright._impl._api_types.Error: It looks like you are using Playwright Sync API inside the asyncio loop.
Please use the Async API instead.
这里是因为我循环一次请求会重新实例化一个playwright,但上一次实例化的playwright并没有关闭,所以需要在代码里面加上
def pw_stop(self):
time.sleep(5)
self.playwright.stop()
此操作在get_headers
之后进行。
(虽然他建议的是我要使用异步模式,但我是指定浏览器打开,异步模式里面没有我需要的API)
使用bat脚本创建文件夹
可以使用以下的 BAT 脚本创建文件夹到 C 盘并检查它是否已存在:
@echo off
set folder=C:MyFolder
if not exist %folder% (
echo Creating folder...
mkdir %folder%
echo Folder created successfully!
) else (
echo Folder already exists!
)
pause
脚本中,首先定义了要创建的文件夹路径为 C:MyFolder
,然后使用 if not exist
判断该文件夹是否已存在。如果不存在,则输出信息“Creating folder…”,并使用 mkdir
命令创建文件夹。创建成功后,输出信息“Folder created successfully!”。如果文件夹已存在,则输出信息“Folder already exists!”,不执行创建操作。
可以将上述代码保存为 XXX.bat 文件,在命令行中执行即可。
写一个bat脚本,获取chrome.exe所在的路径
可以使用以下的 BAT 脚本获取 Chrome.exe 所在的路径:
@echo off
setlocal
rem 获取 Chrome.exe 所在的路径
set "chromePath="
for /f "tokens=* usebackq" %%a in (`where chrome.exe`) do (
set "chromePath=%%a"
goto :done
)
:done
echo Chrome.exe is located at:
echo %chromePath%
pause
endlocal
脚本中,首先使用 where
命令查找 Chrome.exe 所在的路径,并通过 for 循环获取该路径并赋值给变量 chromePath
,然后使用 goto
语句跳出循环。最后,使用 echo
命令输出 Chrome.exe 所在的路径。
可以将上述代码保存为 XXX.bat 文件,在命令行中执行即可。
解决bat的echo中文乱码
在BAT脚本中,如果您使用中文字符作为echo命令中的参数,则可能会出现乱码的情况。解决这个问题的方法是在使用echo命令输出中文字符之前,将输出的代码页设置为UTF-8编码或其他支持中文字符的代码页。可以使用chcp命令来修改当前的代码页。
以下是设置代码页为UTF-8并输出中文字符的示例代码:
@echo off
chcp 65001 > nul
echo 你好世界!
在上面的代码中,chcp 65001
命令用于设置代码页为UTF-8编码,>nul
用于将chcp命令的输出重定向到空设备,以避免在脚本中显示不必要的输出。然后,使用echo
命令输出中文字符“你好世界!”,这时候就不会出现乱码了。
如果您使用的操作系统不支持UTF-8编码,可以使用其他支持中文字符的代码页,例如:936(中文简体)或950(中文繁体)。在这种情况下,您可以将chcp命令的参数值更改为对应的代码页编号即可。
完整的bat脚本
@echo off
chcp 65001 > nul
echo ************************
echo *****Start Runing*******
echo ************************
set folder=C:MyAutoFolderAutomationProfile
if not exist %folder% (
echo Creating folder...
mkdir %folder%
echo Folder created successfully!
) else (
echo Folder already exists!
)
rem 获取 Chrome.exe 所在的路径
set "chromePath="
for /f "tokens=* usebackq" %%a in (`where chrome.exe`) do (
set "chromePath=%%a"
)
echo chromepath is : %chromePath%
rem 启动127.0.0.1:9222端口的谷歌浏览器
echo Start ChromeBrowser at 127.0.0.1:9222
echo 浏览器启动完毕,输入回车键关闭当前窗口
%chromePath% --remote-debugging-port=9222 --user-data-dir=%folder%
pause
将上面的代码保存为XXX.bat,双击即可运行,会打开一个新的chrome浏览器。
你可以在这个浏览器进行登录操作,并保存账户信息。
之后通过selenium或playwright连接该浏览器,就不需要登录操作,可直接进行后续自动化操作。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
1、去年在自己的服务器上安装了jenkins,说用来自己研究一下jenkins自动化部署前端项目,jenkins安装好了,可是一直没管,最近终于研究了一下使用jenkins自动化部署,以此记录下来。 一、jenkins的安装 由于安装已经过去大半年时间了,具体…