2015-05-18 2 views
1

У меня есть кнопка «Отправить», которая становится кликабельной после того, как произойдет другое действие. В этом случае пользователь должен щелкнуть флажок TOS, а затем кнопка станет интерактивной. Я не могу найти селектор, который позволит мне автоматизировать нажатие кнопки «Отправить». Когда вы нажмете кнопку «Отправить», появится окно подтверждения.Селектор, который позволит автоматически нажать кнопку «Отправить»

Я использую Транспортир как тестовый бегун с Webstorm. В настоящее время тест проходит, однако я не вижу нажатия кнопки «Отправить» и не создается новая учетная запись. Я могу добавить утверждение, но мне нужно знать, как найти элемент для фактического щелчка. XPath и CSS, похоже, не работают, когда начинается автоматизация.

Это то, что я пытаюсь изменить:

element(by.xpath('//*[@id="formHolderId"]/div/div/div[3]/span/button[2]')).click(); 

Это то, что Осмотреть элемент показывает до TOS флажком проверяемых

<button data-ng-click="modalOptions.ok(formData)" data-ng-disabled="formHolder.$invalid || formHolder.formHolder.$invalid" data-ng-if="modalOptions.actionButtonText" type="submit" class="btn btn-sm btn-submit ng-binding ng-scope ng-click-active" disabled="disabled"> 
     Submit</button> 

Это то, что Осмотреть элемент выглядит после проверки флажка TOS:

<button data-ng-click="modalOptions.ok(formData)" data-ng-disabled="formHolder.$invalid || formHolder.formHolder.$invalid" data-ng-if="modalOptions.actionButtonText" type="submit" class="btn btn-sm btn-submit ng-binding ng-scope ng-click-active"> 
     Submit</button> 

Пока флажок TOS не установлен , есть disabled="disabled", но в любом случае, я не могу получить из него элемент с возможностью клика.

+0

Определите, что вы подразумеваете под словом «Я не могу получить из него элемент с кликабельностью». Каков ваш код, что вы ожидаете от него и что он делает? –

+0

Мне нужно иметь возможность нажать кнопку «Отправить». Я не могу получить его с помощью XPath, CSS или любого другого элемента (по ...). – Drew

+0

Мой хрустальный шар говорит, что проблема заключается в строке 42. Если вы доверяете разработчикам больше, чем хрустальные шары, тогда разместите свой код и сообщите, что вы ожидаете от него, и что он делает. –

ответ

1

Установите флажок TOS, чтобы активировать кнопку, найдите его с помощью текста и нажмите:

var submitButton = element(by.xpath("//button[contains(., 'Submit')]")); 
submitButton.click(); 

Если по какой-то причине, вы не можете включить кнопку и, следовательно, щелкните по нему с помощью element.click(), вы можете моделировать щелчок, выполнив javascript:

browser.executeScript("arguments[0].click();", submitButton.getWebElement()); 
Смежные вопросы