要在java中執(zhí)行js代碼,首先明白,java不支持瀏覽器本身的方法。支持盯稿慧自定義的js方法,否則會(huì)報(bào)錯(cuò)
為站前等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及站前網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、站前網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
先新建一個(gè)js文件:jsss.js
內(nèi)容如下:
function aa(a,b){ ? ?return a+b;
}
然后在java中寫代碼:敬檔
public class ZipTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String jsFileName="G:\\javaPro\\zmwmcc\\WebRoot\\jsss.js";
FileReader reader = new FileReader(jsFileName); ? // 執(zhí)行指定腳本 ? ?? ? ? ? ?engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; ? ?// 調(diào)用merge方法,并傳入兩個(gè)參數(shù)
Double c = (Double)invoke.invokeFunction("aa", 2, 3); //調(diào)用了js的aa方法
System.out.println(c);
}
// engine.eval("alert(\"js alert\");"); ? ?// 不能調(diào)凱答用瀏覽器中定義的js函數(shù) // 錯(cuò)誤,會(huì)拋出alert引用不 ? ?}
}
ScriptEngineManager scriptManager = new ScriptEngineManager();
ScriptEngine js = scriptManager.getEngineByExtension("js");
System.out.println(js);
不會(huì)是肢扒空,你歷碧昌用這個(gè)試試~我這里可慧閉以的。
1、Jasmine
Jasmine是一個(gè)行為驅(qū)動(dòng)的測(cè)試開發(fā)框架,用于對(duì)JavaScript代碼進(jìn)行測(cè)試。它不依賴其它任何JavaScript框架,也不需要DOM。它的語法簡(jiǎn)潔、明確,寫測(cè)試非常容易。
2、Mocha
Mocha是一個(gè)功能豐富的JavaScript測(cè)試框架,既運(yùn)行于Node.js環(huán)境中,也可以運(yùn)行于瀏覽器環(huán)境中。Mocha以串行方式運(yùn)行測(cè)試,能做出靈活而準(zhǔn)確的報(bào)告,也能將測(cè)試中未捕捉的異常映射到正確的測(cè)試用例。
3、Chai
Chai是個(gè)支持BDD/TDD的庫,可用于node和瀏覽器,可配合任何JavaScript測(cè)試框架使用。
4、QUnit
QUnit是個(gè)功能強(qiáng)大又易于使用的JavaScript單元測(cè)試框架。jQuery、jQueryUI和jQueyMobile項(xiàng)目都使用這個(gè)框架,它能測(cè)試普通的JavaScript代碼。
5、Sinon
Sinon.JS為JavaScript提供了獨(dú)立的spies、stubs和mocks[譯者注:Spy、Stub和Mock都是測(cè)試專用名詞,Stub常被翻譯為樁,spies是Spy的復(fù)數(shù)形式,是一種可以監(jiān)視方法、調(diào)用和參數(shù)的技術(shù)]。它不依賴任何東西,可以配合任何單元測(cè)試框架正滑悔工作。
6、Karma
Karma是針對(duì)連通瀏覽器的一個(gè)框架無關(guān)測(cè)試運(yùn)行器。每一個(gè)測(cè)試結(jié)果對(duì)應(yīng)每個(gè)瀏覽器,它的測(cè)試和顯示都是通過命令行暴露給開發(fā)者的,這樣他們就可以看到瀏覽器測(cè)試的通過或失敗。
7、Selenium
Selenium有一個(gè)簡(jiǎn)單的目標(biāo):就是自動(dòng)化瀏覽器。它主要用于自動(dòng)化測(cè)試web應(yīng)用程序,但是只是很簡(jiǎn)單地考慮到了基于網(wǎng)絡(luò)的管理任務(wù)。
8、WebdriverIO
WebdriverIO允許用戶僅添加幾行代碼就可以控制瀏覽器或移動(dòng)應(yīng)用程序,使測(cè)試代碼更簡(jiǎn)單、簡(jiǎn)潔、易讀。集成的TestRunner同樣允許你以同步的方式調(diào)用異步命令,這樣你不需要關(guān)心如何處理Promise以避免競(jìng)態(tài)條件。此外,它取消了所有的繁瑣的設(shè)置工作,并且會(huì)為您讓悶管理的Selenium會(huì)話。
9、Nightwatch
Nightwatch.js是一個(gè)易于使用的Node.js,它是為基于瀏覽器的app和網(wǎng)站設(shè)計(jì)的終端到終端(E2E)的測(cè)試方法。它使用強(qiáng)大的W3CWebDriverAPI,用于在DOM元素上執(zhí)行命令和斷言。
10、舉正PhantomCSS
PhantomCSS獲得CasperJS捕獲的屏幕截圖,并使用Resemble.js將其與基準(zhǔn)圖進(jìn)行對(duì)比,以測(cè)試RGB像素差異。java課程發(fā)現(xiàn)PhantomCSS然后生成圖像差異對(duì)比,用于幫助您找到原因。
11、PhantomFlow
PhantomFlow使用決策樹提供UI測(cè)試方案。針對(duì)PhantomJS,CasperJS和PhantomCSS的NodeJS包裝器——PhantomFlow能夠流暢地在代碼中描述用戶流程,同時(shí)生成用于可視化的結(jié)構(gòu)化樹數(shù)據(jù)。