как получить значения при html5 атрибуте данных в селене python - PullRequest
1 голос
/ 25 марта 2020

я хочу получить значение из "value":"165796011", которое в data-gbfilter-checkbox

я использовал

element= driver.find_element_by_css_selector('#widgetFilters > div:nth-child(1) > div.a-row.a-expander-container.a-expander-inline-container > span:nth-child(3)')
print(element.get_attribute('data-gbfilter-checkbox'))

, но оно дает мне все данные, которые между data-gbfilter-checkbox bractes

HTML:

<span class="a-declarative" data-action="gbfilter-checkbox" data-gbfilter-checkbox="
{"attribute":"whitelist_categories","value":"165796011","rangeEnd":"","rangeStart":"","filterType":"checkboxes"}">
</span>

я решил это, но сейчас (я не хочу писать 7, я хочу это с помощью Dynami c way)

здорово, я преобразовал строка в список и значение число 7, но это обычный способ c. Я хочу найти числа динамическим c способом (я не хочу писать 7, я хочу это с помощью Dynami c способом)

 pages= driver.find_element_by_css_selector('#widgetFilters > div:nth-child(1) > div.a-row.a-expander-container.a-expander-inline-container > div > span:nth-child(25)')

 list= pages.get_attribute('data-gbfilter-checkbox').split('"') print(list[7])

1 Ответ

2 голосов
/ 25 марта 2020

Вы можете разобрать это в json и затем обратиться к полю:

import json
json = json.loads(pages.get_attribute('data-gbfilter-checkbox'))

# the result is a Python dictionary:
print(json["value"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...