Problemas em encontrar os componentes
erick-bergamini opened this issue · comments
Ao executar o dorothy, aparece esse erro:
/var/lib/gems/2.5.0/gems/selenium-webdriver-3.4.3/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok': no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="content"]/div[1]/form/div[3]/input"} (Selenium::WebDriver::Error::NoSuchElementError)
Isso ocorre logo após inserir nos campos o login e senha, antes de clicar no botão o erro ocorre e o browser fecha. Acredito que o script não esteja encontrando o botão de login:
web.rb
if button = browser.find("//*[@id=\"content\"]/div[1]/form/div[3]/input")
button.click
SUAP (html)
...
<main id="content">
<div id="login">
<h2>SUAP: Sistema Unificado de Administração Pública</h2>
<h3><span class="fas fa-lock" aria-hidden="true"></span> Login</h3>
<form action="" method="post" autocomplete="off">
<input type="hidden" name="csrfmiddlewaretoken"
value="HxvhPx1zkppjmS9lzsRfTfmlcrGrDLk2zfMbXYatc8ENDaHQa0ciSs1kyMr0XOYR">
<div class="form-row"><label for="id_username" class="required">Usuário:</label><input type="text"
name="username" autofocus required id="id_username"></div>
<div class="form-row"><label for="id_password" class="required">Senha:</label><input type="password"
name="password" required id="id_password"><input type="hidden" name="this_is_the_login_form"
value="1" /><input type="hidden" name="next" value="/" /></div>
<div class="form-row" id="captcha-row"><label for="id_recaptcha" class="required">Captcha:</label>
<script src="https://www.google.com/recaptcha/api.js"></script>
<script type="text/javascript">
// Submit function to be called, after reCAPTCHA was successful.
var onSubmit_f9036724003a4eb4bec8ff4d5deab9e9 = function (token) {
console.log("reCAPTCHA validated for 'data-widget-uuid=\"f9036724003a4eb4bec8ff4d5deab9e9\"'")
};
</script>
<div class="g-recaptcha" data-sitekey="6LcsptoSAAAAAFfUyvgKaz-uX89DhD_zH-6zMZ3y"
id="id_recaptcha" data-widget-uuid="f9036724003a4eb4bec8ff4d5deab9e9"
data-callback="onSubmit_f9036724003a4eb4bec8ff4d5deab9e9" data-size="normal"></div>
</div>
<div class="submit-row"><input type="submit" value="Acessar" /></div>
<div class="form-row"><a href="/comum/solicitar_trocar_senha/">Esqueceu ou deseja alterar sua
senha?</a></div>
</form>
...
Fix it!
if button = browser.find("//*[@id=\"login\"]/form/div[4]/input")
button.click