Форматирование строк Javascript, параметр методов передачи в выражении xpath - PullRequest
0 голосов
/ 02 июля 2018

Я использую Javascript и Protractor для своих тестов, и возникла проблема с форматированием строки. Вот мой код:

this.roseGold = function (metal) {
    element(by.xpath('//*[@class="rose"][contains(text(),"14K Rose Gold")]')).click()

Как передать параметр metal вместо "14K Rose Gold" В Python я бы сделал что-то вроде этого:

this.roseGold = function (metal) {
    element(by.xpath('//*[@class="rose"][contains(text(),"%s")]' %metal)).click()

Как мне достичь этого результата в Javascript?

1 Ответ

0 голосов
/ 02 июля 2018

Вы должны просто иметь возможность объединить строку xpath следующим образом:

this.roseGold = function (metal) {
    element(by.xpath('//*[@class="rose"][contains(text(),"'+metal+'")]')).click();

// or use util.format(), util is a build-in module of Nodejs
var util = require('util');
this.roseGold = function (metal) {
    element(by.xpath(
       util.format('//*[@class="rose"][contains(text(),"%s")]', metal)).click();

Тем не менее, руководство по стилю Protractor рекомендует против xpaths.

рассмотрим element(by.cssContainingText('.rose', metal)).click();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...