Перебор тегов в SeleniumPython

Программы на Python
Anonymous
Перебор тегов в Selenium

Сообщение Anonymous »


Я застрял, и мне не помешало бы подтолкнуть. Я впервые работаю с Selenium/Python, и мне трудно осознать конкретную проблему.

Суть вопроса вот в чем. У меня есть неизвестное количество классов диапазона, которые я хочу пройти. XPATH выглядят следующим образом:

/html/body/main/section/section/div[2]/div/div/section[1]/div/ul/li[1]/div/div[2]/div[3 ]/промежуток[2] /html/body/main/section/section/div[2]/div/div/section[1]/div/ul/li[2]/div/div[2]/div[3]/span[2] /html/body/main/section/section/div[2]/div/div/section[1]/div/ul/li[3]/div/div[2]/div[3]/span[2] Итак, я знаю, что мне нужно делать. Мне нужно пройтись по каждому li и получить span[2].text . Кажется, у меня ничего не получается.

Хорошо, я вроде как соврал. Я справился, чтобы это заработало, но это хакерская работа. Я бы предпочел сделать это правильно, чтобы начать понимать, как устранять подобные неполадки в будущем.

В каждом из приведенных выше li... есть еще один класс span.

/html/body/main/section/section/div[2]/div/div/section[1]/div/ul/li[1]/div/div[2]/div[4 ]/промежуток[2] /html/body/main/section/section/div[2]/div/div/section[1]/div/ul/li[2]/div/div[2]/div[4]/span[2] /html/body/main/section/section/div[2]/div/div/section[1]/div/ul/li[3]/div/div[2]/div[4]/span[2] Этот класс диапазона называется «время». Итак, я сохранил основной раздел в переменную:

items = driver.find_element(By.XPATH,"/html/body/main/section/section/div[2]/div/div/section[1]/div/ul") Затем я искал элементы в этом разделе по имени класса:

all_times = items.find_elements(By.CLASS_NAME,"время") Затем просмотрел каждый из них и сохранил текст в массив.

для раз в all_times: текст = раз.текст timeRemaining.append(текст) Итак... Используя длину массива, я знаю, сколько значений ожидать. Я могу успешно пройти через xpath.

xpath1 = "/html/body/main/section/section/div[2]/div/div/section[1]/div/ul/li[" xpath2 = "]/div/div[2]/div[3]/span[2]" для меня строка в перечислении (timeRemaining): я += 1 xpath = xpath1 + str(i) + xpath2 bin = driver.find_element(By.XPATH,xpath) печать (bin.text) Опять же, я бы предпочел пройтись по этому полю, как я делал в то время (я пытался использовать имя класса, но оно не вернуло никаких результатов)... но я застрял. Типа... застрял. Не ищу ответа, просто подталкиваю в правильном направлении. Любая помощь будет принята с благодарностью.

Вернуться в «Python»