Нацелить элемент пути, который имеет только атрибут ‘d’ с помощью selenium

#python #selenium #web-scraping

#python #selenium #очистка веб-страниц

Вопрос:

Привет, я изучаю некоторые веб-страницы с помощью selenium. У меня есть карта с нарисованными на ней шестиугольниками svg, и я хочу щелкнуть по шестиугольнику, чтобы он получил значение для этого шестиугольника. Проблема в том, что, насколько я могу судить, шестиугольники уникальны только по своему d атрибуту. Как я могу настроить таргетинг на такой элемент?

Это то, что я получаю, когда проверяю элемент

 <path class="hexbin-hexagon" d="M-230016.3472451469,-150000m0,-400l346.41016151377545,199.99999999999994l5.684341886080802e-14,400l-346.41016151377545,200.00000000000009l-346.4101615137754,-199.99999999999983l-2.8421709430404007e-13,-399.9999999999999z" fill="rgb(125, 145, 72)" fill-opacity="0.6" stroke-opacity="0.6"></path> 
 

И это карта
https://sofia.maps.sensor.community/#11/47.4410/13.9749

РЕДАКТИРОВАТЬ: я публикую код, который у меня есть до сих пор

 from selenium import webdriver

PATH = "/home/pex/chromedriver"

driver = webdriver.Chrome(PATH)

driver.get("https://sofia.maps.sensor.community/#11/47.4410/13.9749")



hexagon = driver.find_element_by_xpath('//path[@d="M562.9165124598851,300m0,-25l21.650635094610966,12.499999999999996l3.552713678800501e-15,25l-21.650635094610966,12.500000000000005l-21.650635094610962,-12.49999999999999l-1.7763568394002505e-14,-24.999999999999993z"]')

 

РЕДАКТИРОВАТЬ 2: Хорошо, это странно, но мой браузер, похоже, не может найти какие-либо элементы с path, даже когда я пытаюсь найти какие-либо элементы с d атрибутом скриншот chrome dev tools

РЕДАКТИРОВАТЬ 3: я думаю, что мой компьютер по какой-то причине не может обработать этот запрос. //path также ничего не возвращает.

Комментарии:

1. Что вы хотите сделать с целевым элементом?

2. О, чувак, этот сайт, кажется, ломает мой браузер! Элементы находятся внутри DOM, но inspect element пытается их найти. Кажется, более 6000 элементов пути… Интересно, достигаете ли вы какого-то предела.

3. теоретически, если вы просто хотите выбрать элементы пути, которые ИМЕЮТ какое-либо общее значение, это будет работать: //path [@d]

4. @DebanjanB Я просто хочу получить значение из графика, которое отображается при нажатии на элемент

5. @5ko.brat Что происходит, когда вы пытаетесь щелкнуть их? Какая-либо ошибка?

Ответ №1:

Вы пробовали :

 //path[@d="M-230016.3472451469,-150000m0,-400l346.41016151377545,199.99999999999994l5.684341886080802e-14,400l-346.41016151377545,200.00000000000009l-346.4101615137754,-199.99999999999983l-2.8421709430404007e-13,-399.9999999999999z"]
 

Синтаксис Xpath — это тег [@attribut=»value»], поэтому вы можете использовать приведенный выше

введите описание изображения здесь

Комментарии:

1. Я только что сделал, но если возвращено сообщение об исключении: нет такого элемента: невозможно найти элемент:

2. Сначала попробуйте это в консоли, а затем попробуйте, я скрипт

3. я попробовал это в консоли, но снова это не удалось

4. @5ko.brat это должно сработать, я добавил снимок экрана. он показывает нулевые элементы в консоли?

5. @PDHide Он показывает не zero элементы, а one элемент.