2016-06-20 53 views
1

我想讓我的代碼在portractor中更具可讀性。 我想將css類存儲在變量中,並需要通過點擊方法訪問該變量。需要存儲到變量的css元素

element.all(by.css("div[ng-click=\"setLocation('report_road')\"]")).click(); 

element.all(by.css("div[ ng-click=\"mapFeedBack.editObject= mapFeedBack.createMapObjectModel();setLocation(mapFeedBack.noMap?'road_new':'choose_location_road_new/road_new')\"]")).click(); 

    it("test browser should reach report road option",function() //spec2s 
{ 
    element.all(by.css("div[ng-click=\"setLocation('report_road')\"]")).click(); 
    expect(browser.getCurrentUrl()).toContain("report_road"); 
    browser.sleep(browser.params.sleeptime); 
    browser.sleep(browser.params.sleeptime); 
}); 


it("test browser should reach report road missing",function() //spec3 
{ 
    element.all(by.css("div[ ng-click=\"mapFeedBack.editObject= mapFeedBack.createMapObjectModel();setLocation(mapFeedBack.noMap?'road_new':'choose_location_road_new/road_new')\"]")).click(); 
    expect(browser.getCurrentUrl()).toContain("choose_location_road_new/road_new"); 
    browser.sleep(browser.params.sleeptime); 
    browser.sleep(browser.params.sleeptime); 
}); 

所以我創造了我的文件中有兩個變量:

var road_button ="\"div[ng-click=\"setLocation('report_road')\"]\""; 

var road_missing= "\"div[ ng-click=\"mapFeedBack.editObject= mapFeedBack.createMapObjectModel();setLocation(mapFeedBack.noMap?'road_new':'choose_location_road_new/road_new')\"]\""; 

並試圖使用該變量來訪問我的CSS類:

element.all(by.css(road_button)).click(); 
element.all(by.css(road_missing)).click(); 

但一些如何我不能夠訪問這些變量值。你能爲我提供正確的方法嗎? 謝謝

+0

檢查這些變量的範圍,你在哪裏定義呢?在描述中?測試執行是否也沒有變量? –

回答

1

我認爲你有點重新發明輪子。你真正需要遵循的是使用頁面對象的指導原則。它們不僅可以解決您將測試流程和測試場景邏輯分開的問題,還可以使代碼更加模塊化,並且易於適應應用程序端無休止的變化。

這裏是一個很大的實用介紹頁面對象在量角器: