0
votes

I am quite new to protractor and programming and I need some help in ticking a "Terms and Conditions" checkbox on a non-angular site using protractor for some automation tests.

The ticker looks like this:

  <div class="form-group">
      <label class="control-label">Do you accept the Terms of Service?</label>
   <div class="input-group">
     <label for="accept-terms-yes">
        <input type="radio" name="term_of_service" id="accept-terms-yes" value="Yes" required>
      <span>Yes</span>
     </label>
     <label for="accept-terms-no">
        <input type="radio" name="term_of_service" id="accept-terms-no" value="No" required>
       <span>No</span>
     </label>
  </div>

I have tried the following + more

browser.driver.findElement(by.id('accept-terms-yes')).by.tagName("term_of_service").click(0);
browser.driver.findElement(by.xpath("html/body/div[@class='formgroup']/div[@class='input-group']/div[@label='accept-terms-yes']")).click();
browser.driver.findElement(by.name('term_of_service-yes')).click();
browser.driver.findElement(by.id('accept-terms-yes')).get(0).click()

but without any success.

The closest result I could get is: "browser.driver.findElement(by.id('accept-terms-yes')).click();" which gives the "Other element would receive a click " error.

Any kind of help is appreciated and sorry to have such a noob question.

2

2 Answers

0
votes

try: browser.driver.findElement(by.id('accept-terms-yes')).click();

But this message may be affected by e.g. z-index, unclosed modal or plenty of other issues.

0
votes

Apparently changing click(); to submit("Yes"); worked. Even if the specs are displayed as Fail, they actually work.

The line now looks like this:

browser.driver.findElement(by.id('accept-terms-yes')).submit("Yes"); browser.driver.findElement(by.id('receive-weekly-email-no')).submit("No");

Found the information needed Here