Невозможно найти элемент с помощью селена webdriver, даже если идентификатор элемента существует - PullRequest
0 голосов
/ 08 мая 2018

Пожалуйста, смотрите скриншот. Я пытаюсь нажать кнопку «Отмена», как показано на моем скриншоте. Даже когда идентификатор элемента существует, я не могу нажать на кнопку. Всплывающее окно не является ни новым окном, ни напоминанием для меня. Я пытался найти, если это проблема с дескриптором окна. но при поиске дескрипторов окна мне выдается только одно число:

 Set<String> handles = driver.getWindowHandles();
 System.out.println(handles);

Просьба предложить .. Screenshot of webpage

Screenshot of Webelement

Получено сообщение об ошибке -

Исключение в потоке "main" org.openqa.selenium.NoSuchElementException: нет такого элемента: Невозможно найти элемент: {"method": "id", "selector": "ctl00_ContentPlaceHolder1_g_64d6331f_e460_0_t_0_f_080_b8_93_649_9109_4_1509_4_9109109109_4_1_80_9109105 (Информация о сеансе: chrome = 65.0.3325.181) (Информация о драйвере: chromedriver = 2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1), платформа = Windows NT 6.1.7601 SP1 x86_64) (ВНИМАНИЕ: сервер не предоставил никакой информации о трассировке стека) Продолжительность или время ожидания команды: 0 миллисекунд

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Идентификатор, который вы пытаетесь получить, на самом деле не существует. Это связано с тем, что идентификатор динамически изменяется каждый раз, когда браузер создает кнопку, независимо от того, происходит ли это при первом обращении к ней или при выполнении другого действия, такого как javascript.

Вы можете использовать атрибуты и XPath, чтобы получить кнопку отмены, так как она статична и не меняется между сессиями.

Код C #

FindElement(By.XPath("//input[contains(@value, 'Cancel')]"));
0 голосов
/ 08 мая 2018

Я думаю, значение id меняется динамически.Попробуйте этот локатор

 By.CssSelector("input[value='Cancel']");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...