用Python在Tomcat成功啟動后自動打開瀏覽器訪問Web應用

前提條件

  1. Windows
  2. Python 2.7
  3. 需設置CATALINA_HOME環境變量

放碼過來

# -*- coding: utf-8 -*
import os
import time
import subprocesstomcatStartFilePath = 'C:\\tomcat\\apache-tomcat-7.0.90-windows-x64\\apache-tomcat-7.0.90\\bin\\startup.bat'
browserPath = 'C:\\Users\\Administrator.USER-20180302VA\\AppData\\Local\\360Chrome\\Chrome\\Application\\360chrome.exe'
appAddress = "http://localhost:8080/nice"# 啟動 tomcat,注意要設置CATALINA_HOME的環境變量
subprocess.Popen(tomcatStartFilePath, shell=True)
print 'Starting tomcat...'
time.sleep(15)# 啟動15s后, 輪詢 8080端口是否啟用
print 'Polling...'
startBrowerFalg = False#每次輪詢間隔5秒
interval = 5
count = 6while count > 0:tmpFile = os.popen('netstat -na','r')breakWhileFlag = Falsefor line in tmpFile.readlines():if line.startswith('  TCP    0.0.0.0:8080'):breakWhileFlag = Truebreakprint "Not yet."if breakWhileFlag:print "It's Ok."startBrowerFalg = Truebreakelse:count -= 1time.sleep(interval)# 8080 啟用成功后, 打開瀏覽器訪問 /nice
if startBrowerFalg:print "Launch the browser."subprocess.Popen('%s %s'%(browserPath, appAddress))
else:print "Something wrong ..."raw_input()

參考資料

  1. 如何通過批處理調用tomcat的startup.bat,然后在tomcat啟動成功后,自動打開瀏覽器并定位到指定網址
  2. Python編程快速上手

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445954.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445954.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445954.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FFmpeg源代碼簡單分析-解碼-avcodec_send_packet 和 avcodec_receive_frame 替代 avcodec_decode_video2

參考鏈接 ffmpeg 源代碼簡單分析 : avcodec_decode_video2()_雷霄驊的博客-CSDN博客_avcodec_decode_video2 avcodec_decode_video2 ffmpeg中的avcodec_decode_video2()的作用是解碼一幀視頻數據。輸入一個壓縮編碼的結構體AVPacket,輸出一個解碼后的結…

FFmpeg源代碼簡單分析-解碼-avformat_close_input()

參考鏈接 FFmpeg源代碼簡單分析:avformat_close_input()_雷霄驊的博客-CSDN博客_avformat_close_input avformat_close_input() 本文簡單分析FFmpeg的avformat_close_input()函數。該函數用于關閉一個AVFormatContext,一般情況下是和avformat_open_inp…

android 使用shell模擬觸屏_[Android]通過adb shell input上報命令模擬屏幕點擊事件【轉】...

常用的 input上報命令:input text 1234 實際向界面注入1234文字,有輸入框,能明顯看到效果input keyevent 4 鍵盤事件,4 為返回input tap 100 300 單擊觸屏事件 ,模擬點擊x100 y 300 位置input swipe 100 300 500 300 …

用Python連接MySQL并進行CRUD

Tag: MySQL, PyMySQL, Python 準備條件 Python 2.7MySQL 5.5安裝 PyMySQL pip install PyMySQL 放碼過來 創建一數據表 CREATE TABLE users (id int(11) NOT NULL AUTO_INCREMENT,email varchar(255) COLLATE utf8_bin NOT NULL,password varchar(255) COLLATE utf8_bin N…

python網絡爬蟲的方法有幾種_Python網絡爬蟲過程中5種網頁去重方法簡要介紹

一般的,我們想抓取一個網站所有的URL,首先通過起始URL,之后通過網絡爬蟲提取出該網頁中所有的URL鏈接,之后再對提取出來的每個URL進行爬取,提取出各個網頁中的新一輪URL,以此類推。整體的感覺就是自上而下進…

FFmpeg源代碼簡單分析-編碼-avformat_alloc_output_context2()

參考鏈接 FFmpeg源代碼簡單分析:avformat_alloc_output_context2()_雷霄驊的博客-CSDN博客_avformat_alloc_context avformat_alloc_output_context2() 在基于FFmpeg的視音頻編碼器程序中,該函數通常是第一個調用的函數(除了組件注冊函數av…

《深入理解JVM.2nd》筆記(一):走進Java

概述 Java技術體系 Java程序設計語言各種硬件平臺上的Java虛擬機Class文件格式Java API類庫來自商業機構和開源社區的第三方Java類庫 Java發展史 Java虛擬機發展史 展望Java技術的未來 模塊化 混合語言 多核并行 進一步豐富語法 64位虛擬機 實戰:自己編譯…

js監聽只讀文本框_js 動態控制 input 框 的只讀屬性

input 框的只讀屬性: readonly在頁面中直接添加為只讀時,可在input中直接添加 readonly"readonly",但是如果想通過點擊按鈕來改變的話,需要通過js(或jquery)來實現。最近一次使用這個,終于發現了以前寫這…

FFmpeg源代碼簡單分析-編碼-avformat_write_header()

參考鏈接 FFmpeg源代碼簡單分析:avformat_write_header()_雷霄驊的博客-CSDN博客_avformat_write_header avformat_write_header() FFmpeg寫文件用到的3個函數:avformat_write_header(),av_write_frame()以及av_write_trailer()其中av_writ…

《深入理解JVM.2nd》筆記(二):Java內存區域與內存溢出異常

文章目錄概述運行時數據區域程序計數器Java虛擬機棧本地方法棧Java堆方法區運行時常量池直接內存HotSpot虛擬機對象探秘對象的創建第一步第二步第三步第四步最后一腳對象的內存布局對象頭Header第一部分第二部分實例數據Instance對齊填充Padding對象的訪問定位句柄直接指針對象…

vue底部選擇器_Vue組件-極簡的地址選擇器

一、前言本文用Vue完成一個極簡的地點選擇器,我們接下來帶大家實現這個。當然其中也有一些值得學習與注意的地方。話不多說,我們先上demo圖。因為每個人的需要不一樣,我這邊就不在實現更多的功能,所以留有更大的空間供大家增刪改。…

FFmpeg源代碼簡單分析-編碼-avcodec_encode_video()已被send_frame 和 receive_packet替代

參考鏈接 FFmpeg源代碼簡單分析:avcodec_encode_video()_雷霄驊的博客-CSDN博客_avcodec_encode_video2 avcodec_encode_video() 該函數用于編碼一幀視頻數據。函數已被棄用參考鏈接:FFmpeg 新舊版本編碼 API 的區別_zouzhiheng的博客-CSDN博客 send_f…

《深入理解JVM.2nd》筆記(三):垃圾收集器與垃圾回收策略

文章目錄概述對象已死嗎引用計數算法可達性分析算法再談引用finalize():生存還是死亡回收方法區垃圾收集算法標記-清除算法復制算法標記-整理算法分代收集算法HotSpot的算法實現枚舉根結點安全點安全區域垃圾收集器SerialParNewParallel ScavengeSerial OldParallel…

python計算股票趨勢_通過機器學習的線性回歸算法預測股票走勢(用Python實現)...

1 波士頓房價數據分析安裝好Python的Sklearn庫后,在安裝包下的路徑中就能看到描述波士頓房價的csv文件,具體路徑是“python安裝路徑\Lib\site-packages\sklearn\datasets\data”,在這個目錄中還包含了Sklearn庫會用到的其他數據文件&#xff…

FFmpeg源代碼簡單分析-編碼-av_write_frame()

參考鏈接 FFmpeg源代碼簡單分析:av_write_frame()_雷霄驊的博客-CSDN博客_av_write_frame av_write_frame() av_write_frame()用于輸出一幀視音頻數據,它的聲明位于libavformat\avformat.h,如下所示。 /*** Write a packet to an output me…

《深入理解JVM.2nd》筆記(四):虛擬機性能監控與故障處理工具

文章目錄概述JDK的命令行工具jps:虛擬機進程狀況工具jstat:虛擬機統計信息監視工具jinfo:Java配置信息工具jmap:Java內存映像工具jhat:虛擬機堆轉儲快照分析工具jstack:Java堆棧跟蹤工具HSDIS:J…

postgresql 主從配置_Postgresql主從配置

一、簡介PostgreSql在9.0之后引入了主從的流復制機制,所謂流復制,就是從服務器通過tcp流從主服務器中同步相應的數據。這樣當主服務器數據丟失時從服務器中仍有備份。與基于文件日志傳送相比,流復制允許保持從服務器更新。 從服務器連接主服務…

FFmpeg源代碼簡單分析-編碼-av_write_trailer()

參考鏈接: FFmpeg源代碼簡單分析:av_write_trailer()_雷霄驊的博客-CSDN博客_av_malloc av_write_trailer() av_write_trailer()用于輸出文件尾,它的聲明位于libavformat\avformat.h,如下所示 /*** Write the stream trailer to…

科沃斯掃地機器人風扇模塊_掃地機器人不能開機,不能關機,風扇不轉

家庭的重要性自不必再細說,而小編今天要說的則是家庭環境的重要性。一般家庭最少居住三口人,兩個大人加一個孩子,每天回到家,看到家里整潔舒適的環境,心情該是多么地愜意。要是我們每天下班回到家中,看到滿…

MySQL關鍵字EXPLAIN的用法及其案例

文章目錄概述EXPLAIN輸出的列的解釋實例說明select_type的說明UNIONDEPENDENT UNION與DEPENDENT SUBQUERYSUBQUERYDERIVEDtype的說明system,consteq_refrefref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALLextra的說明DistinctNot existsRange ch…