Selenium Python Хранение идентификатора в списке - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь перебрать неупорядоченный список и собрать информацию идентификатора в каждом <li>

Например,

<ul>
<li id = Example-info>...</li>

Есть ли способ сохранить "Пример информации" в переменной или списке

I want to store the id=

У меня есть следующий код

ids = []
resultSet = browser.find_element_by_xpath('//*[@id="mainContent"]/div[1]/div/div[5]/ul')
ids = resultSet.find_element_by_tag_name('li')

for id in ids:
    print (id)

Состоит из xpath к тегу <ul>

Любые предложения будут удивительными!

Полный код здесь. https://pastebin.com/zC8VeeUf

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Вы можете использовать Javascript и получить все идентификаторы в списке в одну строку, моя единственная жалоба - xpath, который вы использовали //*[@id="mainContent"]/div[1]/div/div[5]/ul. Я уверен, что вы можете использовать гораздо лучший селектор:

#ids is a list 
ids = browser.execute_script("return [...document.querySelectorAll('.left-panel li')].map(e => e.getAttribute('id'));")

Также вы можете найти некоторые решения здесь: Селен: get_attribute one условие

0 голосов
/ 05 сентября 2018

Вы так близки к тому, чтобы быть правым. Вам просто нужно позвонить find_elements (обратите внимание на S), который создает список детей

Ваше заявление о печати также неверно

ids = []
resultSet = browser.find_element_by_xpath('//*[@id="mainContent"]/div[1]/div/div[5]/ul')
ids = resultSet.find_elements_by_tag_name('li')

for id in ids:
    print(id.get_attribute('id'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...