2017-02-16 1 views
-1

Вот HTML, который я используюWebElement не определены в селеном C#

 <div class="modal-footer"> 
 
<button class="btn btn-primary" type="button" value="Show Alert" ng-click="questions.getIrMessage()" 
 
data-dismiss="modal">Confirm</button> 
 
<button class="btn btn-primary" type="button" ng-click="questions.showIrGrid()" data-dismiss="modal">Edit</button> 
 
</div>

Я пытаюсь найти кнопку 'Изменить', используя следующую строку кода

[FindsBy(How = How.XPath, Using = "//button[contains(text(),'Edit')]")] 
public IWebElement btnEdit; 

Я получаю исключение Исключенного элемента, когда я пытаюсь использовать это свойство.

Когда я расширить btnEdit свойство в коде, я могу видеть, что свойство «отображается» ложно, а также свойство текста пусто Property image

Пожалуйста найти прикрепленное изображение.

Но когда я пытаюсь найти кнопку «подтвердить», проблем нет, и я могу найти веб-элемент.

Что является причиной не получить кнопку webelemnt.Thank заранее

+0

Отображается свойство же для кнопки подтверждения? –

+0

После того, как страница загрузится в браузере, запустите '$ x (кнопка« // »[содержит (text(),« Edit »)]»). Length' в консоли dev. Возвращает ли он> 0? Посмотрите на HTML загруженной страницы, вы можете увидеть элемент и почему он может быть скрыт? Вероятно, вам нужно будет опубликовать ссылку на страницу или более соответствующий HTML. – JeffC

ответ

0

Селен имитирует действия пользователя. Ваш элемент не отображается пользователю (display = none), поэтому Selenium не может его прочитать.

Вы можете найти скрытые элементы с помощью:

IList<IWebElement> hidden = driver.FindElements(By.CssSelector("button[style=display:none]")); 

Вы должны найти свой элемент в этом списке.

+0

Где вы видите, что кнопка скрыта в предоставленном HTML? Даже если бы это было так, ваш код не будет работать. – JeffC

0

Спасибо всем за reply.There два элемента с тем же именем, что и является причиной confusion.Actually я хочу, чтобы второй one.Below является кодом, который я использовал, чтобы нажать на кнопку я хочу SeleniumWrapper.driver.FindElements(By.XPath("//button[contains(text(),'Edit')]"))[1].Click();

 Смежные вопросы

  • Нет связанных вопросов^_^