Selenium не находит элементы вкладки с помощью различных методов - PullRequest
1 голос
/ 08 марта 2020

У меня возникли проблемы с поиском Selenium набора определенных c элементов ссылки вкладки по идентификаторам или тексту ссылки. Используя Selenium, я пытаюсь нажать / l oop на каждой из вкладок («ОПИСАНИЕ И ЦЕНА», «FINI SH» и «ПРИМЕЧАНИЯ») и почистить следующую таблицу (см. Скриншот).

enter image description here

Ниже HTML вкладок. Когда мой l oop впервые загружает страницу, активна вкладка «ОПИСАНИЕ И ЦЕНА», и последующая таблица легко очищается с помощью BeautifulSoup (путем поиска с указанным идентификатором таблицы c). Однако после того, как таблица «D + P» очищена, я пытаюсь щелкнуть вкладку «FINI SH» с помощью Selenium, я получаю ошибку NoSucElementException.

Я надеюсь, что смогу нажимать на вкладки "FINI SH" и "NOTES", используя метод текста ссылки (поскольку вкладки отличаются от страницы к странице). Это приводит к ошибке.

driver.find_element_by_link_text ("FINI SH"). Click ()

Я также пробовал метод идентификатора, но это тоже не удается.

driver.find_element_by_id ("cphMain_tbTabs_rptTabs_lnkTab_1"). click ()

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

Другое соображение состоит в том, что я не вижу упоминания о iframe в html.

<div id="cphMain_upTabs">

                    <div id="cphMain_divTabs" class="tabs">
                        <div id="cphMain_tbTabs_divTabs">

    <ul class="tabset">

    <li><a id="cphMain_tbTabs_rptTabs_lnkTab_0" class="tab active" href="javascript:__doPostBack(&#39;ctl00$cphMain$tbTabs$rptTabs$ctl01$lnkTab&#39;,&#39;&#39;)" style="font-weight:bold;">DESCRIPTION AND PRICE</a></li>

    <li><a id="cphMain_tbTabs_rptTabs_lnkTab_1" class="tab" href="javascript:__doPostBack(&#39;ctl00$cphMain$tbTabs$rptTabs$ctl02$lnkTab&#39;,&#39;&#39;)" style="font-weight:normal;">FINISH</a></li>

    <li><a id="cphMain_tbTabs_rptTabs_lnkTab_2" class="tab" href="javascript:__doPostBack(&#39;ctl00$cphMain$tbTabs$rptTabs$ctl04$lnkTab&#39;,&#39;&#39;)" style="font-weight:normal;">NOTES</a></li>

    </ul>

1 Ответ

0 голосов
/ 08 марта 2020

Похоже, моя проблема была с первой страницей, которую я проверяю - я добавил Try / Except logi c, и теперь я могу пропустить первую страницу и очистить информацию для последующих страниц. Не уверен, что проблема с первой страницей ...

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