Автоматический браузер не отправляет форму - PullRequest
0 голосов
/ 03 июля 2018

В настоящее время я делаю автоматические тесты для Browserstack, используя Selenium и Nightwatch.js. Я столкнулся с проблемой, когда я не могу отправить форму входа. Либо ничего не происходит, либо страница просто перезагружается. Все необходимые данные для входа задаются с помощью browser.setValue('{selector}', '{value}'). Пробовал это на Chrome и Firefox, но результат тот же. Я могу отправить форму, используя JS в консоли браузера.

Я пробовал следующие методы безрезультатно.

browser.submitForm('#login-form');
browser.click('#send2');
browser.execute("document.getElementById('send2').click();");
browser.execute("document.getElementById('login-form').submit();");

Есть что-то, что я пропускаю? Если это имеет значение, я пытаюсь автоматизировать форму входа для сайта Magento 1.

Большое спасибо.

Edit: Добавлена ​​форма HTML

<form action="https://{site}/en/customer/account/loginPost/" method="post" id="login-form">
							<input name="form_key" type="hidden" value="1CdZGL4mwA0njx3U">		        	        
							<div class="form-group">
								<input type="text" class="input-text-custom required-entry validate-email form-control" id="email" name="login[username]" value="" title="Insert Email Address" placeholder="Insert Email Address">					    
							</div>		        
							<div class="form-group">						
								<input type="password" class="input-text-custom required-entry form-control" id="pass" name="login[password]" title="Password" placeholder="Password">											    
							</div>
                            <div class="form-group">
                                <input type="checkbox" name="nl_subscribe" id="nl_subscribe_existing" value="subscribe" class="form-control checkbox">
                                <label for="nl_subscribe_existing" class="text-normal-checkout"><span></span>By the way, I also want to subscribe to your newsletter*</label>
                            </div>
                            <input type="hidden" name="nl_source" value="customer_login" class="form-control checkbox">
				                                        <div class="form-group"><div class="control remember-me-box">
        <div class="input-box">
        <input type="checkbox" name="persistent_remember_me" class="checkbox" id="remember_meL0h6snrk30" title="Remember Me">
        <label for="remember_meL0h6snrk30" class="text-normal-checkout"><span></span>Remember Me</label>
    </div>
</div>
</div>
					        <div class="forgot-password"><a href="https://{site}/en/customer/account/forgotpassword/">Forgot password?</a></div>
                            <div align="center"><button type="submit" class="button-check" name="send" id="send2" title="log in"><span><span>log in</span></span></button></div>
</form>

Редактировать 2: Возможно ли, что это связано с конфигурацией? Я запустил этот тест в локальном браузере, а затем остановил его, чтобы я мог заполнить и отправить форму вручную, но я все равно не смог ее отправить.

1 Ответ

0 голосов
/ 05 июля 2018

Похоже, что скрипт был в порядке, но на сайте была ошибка. По какой-то причине скрипт должен обновить браузер, чтобы иметь возможность успешно отправить форму. Итак, пока это не исправлено, я реализовал browser.execute('location.reload();'); как обходной путь.

...