Невозможно извлечь "движущиеся" данные. Список показа терминала = ['', '', '', '', '', '', '', '', ''] - PullRequest
1 голос
/ 19 июня 2020

На этой странице есть таблица, в каждой строке которой есть кнопка с плюсом «+», где, если вы нажмете на нее, отображается более подробная информация (информация, которая мне нужна).

Каждый плюс «+ »Имеют один и тот же класс, кроме того, одновременно может отображаться только один фрагмент подробной информации. Таким образом, если я нажал первую кнопку, в тот момент, когда я нажму вторую кнопку со знаком «+», подробная информация первой строки исчезнет (закроется).

Дело в том, что каждый раз, когда я нажимаю одну кнопку, на странице происходит определенное движение, и я подозреваю, что это может быть причиной этого, но это не имело смысла. ¿Почему я подозреваю это? Поскольку первый элемент в списке - это текст из другой позиции в строке.

Мне удалось нажать каждую кнопку одну за другой, но я не могу извлечь нужные данные, в результате чего список просто пуст. пробелы вроде [другой текст из строки '', '', '', '', '', '', '', '', '', '']

Я использую код это:

list = []
elements = driver.find_elements_by_css_selector("span[class='buttonclass']")
for x in range(len(elements)):
    elements[x].click()
    time.sleep(2)
    results = driver.find_element_by_css_selector("td[class='class of info I want']")
    skutxt = results.text
    list.append(skutxt)

print(list)

Terminal shows: ['wrong text', '', '', '', '', '', '', '', '', '', '']


Большое спасибо!

1 Ответ

1 голос
/ 19 июня 2020

Использование функции Python zip() для параллельной итерации.

Попробуйте следующий код:

text_list = []
elements = driver.find_elements_by_css_selector("span[class='buttonclass']")
results = driver.find_elements_by_css_selector("td[class='class of info I want']")

for element, result in zip(elements, results):
    elements.click()
    time.sleep(2)
    text_list.append(result.text)

print(text_list)

Но обратите внимание, что time.sleep(..) - плохой способ, вы можете использовать другую альтернативу.

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