«Элемент в настоящее время не виден и поэтому не может взаимодействовать с ним», но другой есть?
Я создал еще один вопрос, который, как мне кажется, является причиной этой ошибки:Почему драйвер Selenium Firefox считает, что мой модальный режим не отображается, если родитель имеет переполнение: скрытый?
Селен версия 2.33.0
Драйвер Firefox
Код, который вызывает ошибку:
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
Кнопка, которую пытается нажать:
<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>
Если я поменяю звонок наFindElements
тогда я получаю ОДИН элемент, так что на странице больше ничего нет.Если яFindElement
на поле, которое происходит прямо перед кнопкой, скажемaddEmployees-employee
, тогдаaddEmployees-employee
являетсяdisplayed
В самом браузере он отображается нормально, все, что мне нужно сделать, - это нажать кнопку и выполнить желаемое поведение, но веб-драйвер отказывается учитывать отображаемый элемент.Как получается, что одно поле можно считать отображаемым, а другое нет?
Модал с кнопкой добавления в правом нижнем углу, все остальные элементы отображаются = true
Размер окна 1200х645 вdriver.Manage().Window.Size;
Расположение элемента: 800x355y заdriver.FindElement(By.Id(buttonName)).Location
Размеры элемента: 51x30 заdriver.FindElement(By.Id(buttonName)).Size
Расположение элемента пароля: 552x233y заdriver.FindElement(By.Id("addEmployees-password")).Size