Javascript 需要在变量中存储到css元素

Javascript 需要在变量中存储到css元素,javascript,css,angularjs,protractor,Javascript,Css,Angularjs,Protractor,我正在尝试使我的代码在portractor中更具可读性。 我想将css类存储在一个变量中,并需要在单击方法时访问该变量 element.all(by.css("div[ng-click=\"setLocation('report_road')\"]")).click(); element.all(by.css("div[ ng-click=\"mapFeedBack.editObject= mapFeedBack.createMapObjectModel();setLocation(mapFe

我正在尝试使我的代码在portractor中更具可读性。 我想将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();
但是我不能访问这些变量值。你能告诉我正确的方法吗?
谢谢你

我想你是在重新发明轮子。您真正需要遵循的是使用页面对象的指导原则。它们不仅可以解决将定位器与测试流和测试场景逻辑分离的问题,还可以使代码更加模块化,并且易于适应应用程序端的无休止的更改

下面是对量角器中页面对象的一个非常实用的介绍:


检查这些变量的范围,您在哪里定义它们?在描述中?测试执行是否在没有变量的情况下通过?