我试图让我的代码在portractor中更具可读性。 我想将css类存储在变量中,并且需要在click方法上访问该变量。
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)
我认为你有点重新发明轮子。您真正需要遵循的是使用页面对象的指南。它们不仅可以解决将定位器与测试流程和测试场景逻辑分离的问题,还可以使代码更加模块化,并且易于适应应用程序端永无止境的更改。
以下是对量角器中页面对象的实用介绍: