Protractor testing: How to set the value of text elements in a login form?

后端 未结 6 652
清酒与你
清酒与你 2020-12-15 02:42

I am writing tests in Protractor for an Angular app. I want to fill out a login form and submit it.

How can I do this? I have got this far, but I don\'t know how to

相关标签:
6条回答
  • 2020-12-15 03:07

    Just for the benefit of anyone who found this via Google, the answer is:

    email.sendKeys('myemail@myemail.com');
    password.sendKeys('mypassword');
    
    0 讨论(0)
  • 2020-12-15 03:08

    As per above answers , you can use sendkeys in most cases . If didn't work only you can inject the text to the element using a java script .

     var locatorid='datepicker1';
              var val= '12/31/2019';
              //without parameterized
              browser.executeScript("document.getElementById('datepicker1').value= '10/21/2019'");
             //After parameterized
              browser.executeScript("document.getElementById('"+locatorid+"').value= '"+val+"'");
               browser.sleep(3000);
    
    0 讨论(0)
  • 2020-12-15 03:12

    How about xpath?

    I create a button like bellow:

    <ion-input [(ngModel)]="model.password" name="password" type="text" #passcode="ngModel" required>
    </ion-input>
    

    And set the value using

    element(by.xpath('//*[@name="password"]/input')).sendKeys('PASSWORD')
    
    0 讨论(0)
  • 2020-12-15 03:13

    In addition to shruti and Richard,

    To ensure the input is empty or cleared, use the clear method which returns a Promise. Resolve the promise with sendKeys method on your input. This is helpful if you have pre-populated your input with default values.

    Async/Await:

    async fillInEmail() { 
      await email.clear(); 
      email.sendKeys('myemail@myemail.com'); 
    }
    async fillInPassword() { 
      await password.clear(); 
      password.sendKeys('mypassword'); 
    }
    

    ES6:

    email.clear().then(() => {
        email.sendKeys('myemail@myemail.com');
    });
    
    password.clear().then(() => {
        password.sendKeys('mypassword');
    });
    

    Before ES6:

    email.clear().then(function() {
        email.sendKeys('myemail@myemail.com');
    });
    
    password.clear().then(function() {
        password.sendKeys('mypassword');
    });
    
    0 讨论(0)
  • 2020-12-15 03:17

    you can use

    email.clear().sendKeys('myemail@myemail.com');
    password.clear().sendKeys('mypassword');
    
    0 讨论(0)
  • 2020-12-15 03:26
    var searchComment = element(by.name("customTextField"));
    searchComment.sendKeys("france").then(function() {
        next()
    }); 
    
    0 讨论(0)
提交回复
热议问题