2017-10-04 2 views
0

Je construis des tests de rapporteur et je cherche à refactoriser du code.Impossible de trouver la syntaxe du rapporteur correct

Cette ligne de code fonctionne très bien:

element.all(by.css('div.modal-content ly-input input')).first().sendKeys("Workflow 1"); 

J'ai essayé de faire ceci:

var name = element(by.css('div.modal-content ly-input')); 

element(name).all(by.css('input')).sendKeys("Workflow 1") 

Il y a quelque chose de mal avec cette dernière ligne de code, comme je reçois un "Failed: Invalid locator" error.

Est-ce que quelqu'un pourrait savoir comment je peux introduire la variable name et l'utiliser dans la dernière ligne de code?

Robert

+0

vous ne pouvez pas utiliser l'élément '(nom) .Toutes (by.css (« input »)) SendKeys (" Flux de travail 1 ")' quand votre 'var name' est' element (par.css ('div.modal-content ly-input')); 'à la place, il devrait être' var name = by.css ('div.modal-content ly-input') 'en tant que localisateur – Hikaryu

Répondre

0

Mes excuses, j'ai finalement pensé à elle. name.all (by.css ('input')) SendKeys ("Flux de travail 1")

0

Je vois que vous figured it out . Voici comment j'écris mes sendkeys afin d'avoir plus de clarté quand je lis mon code.

var name = 'Workflow 1';  
var input = element.all(by.css('div.modal-content ly-input')); 

input.first().sendKeys(name); 

// or if you have multiple inputs in that element above 
var workflowData = { 
    name: 'Workflow 1', 
    description: 'a workflow', 
    type: 'simple' 
}  
var input = element.all(by.css('div.modal-content ly-input')); 

input.get(0).sendKeys(workflowData.name); 
input.get(1).sendKeys(workflowData.description); 
input.get(2).sendKeys(workflowData.type);