В транспортире: Как создать метод, который отправляет только ключи, которые я указал - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть метод с именем populateProvidedValuesForNewMandate, который выглядит следующим образом

exports.populateProvidedValuesForNewMandate = (team, assignee, disputeValue, lawField, 
subjectOfDispute, party, fileReference, costUnit, clientUnit, sideEffect, comment) => {
  const teamInput = element(by.css('div#team input'));
  const assigneeInput = element(by.css('div#assignee input'));
  const disputeValueInput = element(by.id('dispute_value'));
  const lawFieldInput = element(by.css('div#law_field input'));
  const subjectOfDisputeInput = element(by.id('subject_of_dispute'));
  const partyInput = element(by.id('party'));
  const fileReferenceInput = element(by.id('file_reference'));
  const costUnitInput = element(by.css('div#cost_unit input'));
  const clientUnitInput = element(by.id('client_unit'));
  const sideEffectInput = element(by.css('div#side_effect input'));
  const mandateComment = element(by.id('mandate_comment'));

  // TODO: Figure out how to choose these dynamically as well
  // relevantCase, risReportRelevant, economicRelevance, activePassive
  const relevantCaseInput = element(by.css(".relevant_case input[value='no']"));
  const riskReportRelevantInput = element(by.css(".risk_report_relevant input[value='no']"));
  const economicRelevanceInput = element(by.css("label[for='economic_relevance']"));
  const activePassiveInput = element(by.css(".active_passive input[value='passive']"));

  teamInput.sendKeys(team);
  assigneeInput.sendKeys(assignee);
  disputeValueInput.sendKeys(disputeValue);
  lawFieldInput.sendKeys(lawField);
  subjectOfDisputeInput.sendKeys(subjectOfDispute);
  partyInput.sendKeys(party);
  fileReferenceInput.sendKeys(fileReference);
  costUnitInput.sendKeys(costUnit);
  clientUnitInput.sendKeys(clientUnit);
  sideEffectInput.sendKeys(sideEffect);
  mandateComment.sendKeys(comment);

 // TODO: Figure out how to choose these dynamically as well
 // relevantCase, risReportRelevant, economicRelevance, activePassive
 browser.actions().mouseMove(relevantCaseInput).doubleClick().perform();
 browser.actions().mouseMove(riskReportRelevantInput).click().perform();
 browser.actions().mouseMove(economicRelevanceInput).click().perform();
 browser.actions().mouseMove(activePassiveInput).click().perform();
};

, и вот пример его использования

    values.populateProvidedValuesForNewMandate(texts.DISPUTE_VALUE, texts.PARTY, texts.CLIENT_UNIT, 
    texts.SIDE_EFFECT, texts.COMMENT);

Метод заполняет указанные значения, которые l ie в файле с именем text. js в соответствующие поля. Проблема в том, что я получаю сообщение об ошибке: «каждый ключ должен быть числом строки; получил неопределенный ', что означает, что этот метод не работает, потому что я должен отправить ключи для каждой указанной переменной в методе.

Я действительно хочу избежать отправки пустых строк для этого метода (особенно потому, что он не сработает, я попробовал -> Я получаю ошибку от самого приложения, а не от транспортира / селена).

Как превратить этот метод в метод, который учитывает только указанные переменные в тестовых случаях. Также, как вы можете видеть из моего комментария, я пытаюсь выяснить, как это сделать для флажков и переключателей. Если у кого-нибудь есть подсказка, я бы очень признателен

1 Ответ

0 голосов
/ 04 февраля 2020

Честно говоря, только вы можете ответить на вопрос. Потому что для этого есть сотни способов, и некоторые могут работать лучше, чем другие. Так что нам глупо гадать, какой путь лучше для вас. Поэтому я приведу один пример, и, надеюсь, вы можете взять его отсюда

Один из способов - заставить метод принять объект и проверить, передано ли свойство

function fillForm(obj) {
  if (obj.hasOwnProperty('team')) teamInput.sendKeys(team);
  if (obj.hasOwnProperty('assignee')) assigneeInput.sendKeys(assignee);
  if (obj.hasOwnProperty('disputeValue')) disputeValueInput.sendKeys(disputeValue);
// ...
}

, а затем назовите его

fillForm({
  assignee: texts.ASIGNEE,
  disputeValue: texts.DISPUTE_VALUE
})

, чтобы пропустить отправку ключей в поле команды

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