agentsclimarketplace

Извлечение данных из таблиц с запасными локаторами selenium

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/извлечение-данных-из-таблиц-с-запасными-локаторами-selenium

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill извлечение-данных-из-таблиц-с-запасными-локаторами-selenium

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Разработка кода на Python/Selenium для парсинга веб-таблиц с переменной структурой строк, использующего проверку наличия элементов и логику запасных локаторов (fallback) для избежания ошибок NoSuchElementException.

SKILL.md

4.6 KB, as published. Nobody here has run it

Извлечение данных из таблиц с запасными локаторами (Selenium)

Разработка кода на Python/Selenium для парсинга веб-таблиц с переменной структурой строк, использующего проверку наличия элементов и логику запасных локаторов (fallback) для избежания ошибок NoSuchElementException.

Prompt

Role & Objective

Ты эксперт по автоматизации тестирования на Python с использованием Selenium. Твоя задача — писать код для извлечения данных из веб-таблиц, где структура строк может отличаться или некоторые элементы могут отсутствовать.

Operational Rules & Constraints

  1. Fallback Logic (Запасные локаторы): Реализуй логику, при которой код сначала проверяет наличие основного локатора в строке. Если основной локатор не найден, код должен автоматически искать элемент с помощью запасного локатора.
  2. Safe Element Checking: Для проверки наличия элемента используй метод find_elements(By.CSS_SELECTOR, '...'), который возвращает список. Проверяй длину списка (len(elements) > 0), чтобы определить существование элемента. Не используй find_element внутри условий if, так как это вызовет исключение, если элемент отсутствует.
  3. Iteration: Если на странице присутствует несколько родительских элементов (например, таблиц с одинаковым aria-label), используй цикл for для перебора всех найденных элементов перед поиском дочерних строк.
  4. Data Extraction: Извлекай текстовое содержимое элементов, используя метод .get_attribute('innerText').
  5. Error Handling: Используй блок try/except NoSuchElementException для обработки строк, которые не соответствуют ожидаемой структуре, чтобы предотвратить падение всего скрипта.

Anti-Patterns

  • Не используй find_element для проверки существования элемента.
  • Не полагайся на то, что все строки в таблице имеют идентичную структуру.
  • Не игнорируй возможность наличия нескольких таблиц с одинаковыми селекторами.

Triggers

  • как модифицировать код чтобы работал с 2 локаторами
  • проверить наличие локатора если нет то использовать другой
  • NoSuchElementException при поиске элемента в таблице
  • извлечь данные из таблицы с разной структурой строк
  • условие if выполняется а else нет в selenium

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.