"Elemento não está visível no momento e, portanto, não pode ser interagido com", mas outro é?
Eu criei outra pergunta que eu acho que é a causa desse erro:Por que o Selenium Firefox Driver considera meu modal não exibido quando o pai está cheio: oculto?
Selênio versão 2.33.0
Driver do Firefox
O código que causa o erro:
System.Threading.Thread.Sleep(5000);
var dimentions = driver.Manage().Window.Size;
var field = driver.FindElement(By.Id("addEmployees-password")); //displayed is true
field.Click(); //works fine
var element = driver.FindElement(By.Id(buttonName)); //displayed is false
element.Click(); //errors out
O botão que está tentando clicar:
<div id="addEmployees" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="addEmployeesLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Add Employee</h3>
</div>
<div class="modal-body">
<p class="alert alert-info">
<input name="addEmployees-username" id="addEmployees-username" />
<input name="addEmployees-password" id="addEmployees-password" type="password" />
<input name="addEmployees-employee" id="addEmployees-employee" />
</p>
</div>
<div class="modal-footer">
<button name="addEmployees-add" id="addEmployees-add" type="button" class="btn" data-ng-click="submit()">Add</button>
</div>
</div>
Se eu mudar a chamada paraFindElements
então eu recebo um elemento, então não há mais nada na página.Se euFindElement
em um campo que ocorre logo antes do botão, digamosaddEmployees-employee
, entãoaddEmployees-employee
édisplayed
No próprio navegador, ele aparece bem, tudo o que preciso fazer é clicar no botão e o comportamento desejado é executado, mas o webdriver se recusa a considerar o elemento exibidoComo é que um campo pode ser considerado exibido e o outro não?
O modal com o botão add no canto inferior direito, todos os outros elementos são exibidos = true
O tamanho da janela é de 1200x645 pordriver.Manage().Window.Size;
A localização do elemento é: 800x355y pordriver.FindElement(By.Id(buttonName)).Location
As dimensões do elemento são: 51x30 pordriver.FindElement(By.Id(buttonName)).Size
A localização do elemento da senha é: 552x233y pordriver.FindElement(By.Id("addEmployees-password")).Size