“El elemento no está visible actualmente y, por lo tanto, no se puede interactuar con él”, pero ¿otro es?
He creado otra pregunta que creo que es la causa de este error:¿Por qué el controlador de Selenium Firefox considera que mi modal no se muestra cuando el padre tiene un desbordamiento: oculto?
Selenio versión 2.33.0
Driver firefox
El código que causa el error:
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
El botón que está intentando hacer clic:
<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>
Si cambio la llamada aFindElements
luego obtengo UN elemento, así que no hay nada más en la página.Si yoFindElement
en un campo que aparece justo antes del botón, digaaddEmployees-employee
, entoncesaddEmployees-employee
esdisplayed
En el navegador mismo, se muestra bien, todo lo que necesito hacer es hacer clic en el botón y el comportamiento deseado se ejecuta, pero el controlador web se niega a considerar el elemento que se muestra.¿Cómo es posible que un campo pueda considerarse mostrado y el otro no?
El modal con el botón de agregar en la parte inferior derecha, se muestran todos los demás elementos = verdadero
El tamaño de la ventana es 1200x645 pordriver.Manage().Window.Size;
La ubicación del elemento es: 800x355y pordriver.FindElement(By.Id(buttonName)).Location
Las dimensiones del elemento son: 51x30 pordriver.FindElement(By.Id(buttonName)).Size
La ubicación del elemento de contraseña es: 552x233y pordriver.FindElement(By.Id("addEmployees-password")).Size