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

Я искал все связанные темы, которые я могу найти, и не нашел ответа, который еще работает.У меня есть веб-сайт, который генерирует документ PDF (и ссылку на загрузку этого документа), с которым я пытаюсь взаимодействовать, и Selenium продолжает настаивать, что он не может найти элемент по локаторам ID, CSS или xPath.

Вот код:

IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl(url);
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement element = wait.Until(
    ExpectedConditions.ElementToBeClickable(By.Id("lnkMeetingAgenda_9829")));
Assert.That(element.Displayed);
element.Click();
driver.Close();

Я не верю, что элемент находится в другом фрейме, так как я не вижу его при проверке веб-сайта.Любая помощь будет принята с благодарностью!

РЕДАКТИРОВАТЬ: Я думаю, что теперь я знаю ответ, глядя на HTML.Идентификатор не является уникальным, поскольку существует 2 его экземпляра, но это не объясняет, почему не работают xPath или CSS.Любая дополнительная помощь приветствуется.

<a href="/OnBaseAgendaOnline/Meetings/ViewMeeting?id=9829&amp;doctype=1"
            title="View Agenda for Audio/Video Media Meeting with Captions Hyland County Council on 5/22/2018 4:55:42 PM" id="lnkMeetingAgenda_9829">Agenda</a>
        <a href="/OnBaseAgendaOnline/Documents/Downloadfile/Audio_Video_Media_Meeting_with_Captions_9829_Agenda_5_22_2018_4_55_42_PM.pdf?documentType=1&amp;meetingId=9829" id="lnkMeetingAgendaDoc_9829" target="_blank"
            title="Download Agenda for Audio/Video Media Meeting with Captions Hyland County Council on 5/22/2018 4:55:42 PM">
            <img src="/OnBaseAgendaOnline/Images/PDF_16x16.png" />
        </a>
    <span>&nbsp;</span>
            <a href="/OnBaseAgendaOnline/Meetings/ViewMeeting?id=9829&amp;doctype=1"
                id="lnkViewMedia_9829" title="View Media for Audio/Video Media Meeting with Captions Hyland County Council on 5/22/2018 4:55:42 PM">View Media</a>

                        <span>&nbsp;</span>
                    </td>

                    <td class="hidden-xs visible-sm visible-md visible-lg">

                                    <span>&nbsp;</span>
        <a href="/OnBaseAgendaOnline/Meetings/ViewMeeting?id=9829&amp;doctype=1"
            title="View Agenda for Audio/Video Media Meeting with Captions Hyland County Council on 5/22/2018 4:55:42 PM" id="lnkMeetingAgenda_9829">Agenda</a>
        <a href="/OnBaseAgendaOnline/Documents/Downloadfile/Audio_Video_Media_Meeting_with_Captions_9829_Agenda_5_22_2018_4_55_42_PM.pdf?documentType=1&amp;meetingId=9829" id="lnkMeetingAgendaDoc_9829" target="_blank"
            title="Download Agenda for Audio/Video Media Meeting with Captions Hyland County Council on 5/22/2018 4:55:42 PM">
            <img src="/OnBaseAgendaOnline/Images/PDF_16x16.png" />

1 Ответ

0 голосов
/ 29 июня 2018

Случилось так, что искомый идентификатор был вложен в «скрытый» элемент, поэтому я использовал IJavaScriptExecutor для «щелчка» элемента.Ниже приведен код, который я использовал для этого.

IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
        executor.ExecuteScript("arguments[0].click();", element);

Спасибо всем за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...