XPATH для выбора всех элементов с одинаковым именем атрибута, но разными значениями - PullRequest
0 голосов
/ 02 мая 2018

На самом деле я хочу создать XPATH, чтобы нажимать на все электронные письма один за другим. Я вижу, что во всех элементах электронной почты есть атрибут «дата-время». Как я могу найти XPATH элементов с атрибутом «дата-время», учитывая, что все значения различаются для этого атрибута.

одного письма emails i want o select one by one:

 <div tabindex="-1" data- 
 convid="AQQkADAwATYwMAItZmQxOC0yZDI2LTAwAi0wMAoAEAA4dP/BjTqlQb/qmiKQpP+f" 
 data-time="2018-05-01T11:14:04+08:00" id="_ariaId_401" class=""><div> 
 </div><div autoid="_lvv_d" class="_lvv_H1 _lvv_I1 _lvv_L1 
 listItemDefaultBackground" tabindex="-1" role="option" aria- 
 haspopup="true"> 
 <div class="_lvv_M1 ms-bgc-ts 

все остальные идентификаторы выглядят очень динамично, что часто меняется при обновлении страницы. Можете ли вы помочь найти XPATH "дата-время", чтобы выбрать все электронные письма.

Вот то, что я пробовал до сих пор -

elements = driver.find_elements_by_xpath(//*[text()[contains(.,'data-time')]])

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Разделяемый вами HTML-код содержит id как _ariaId_401.

Этот идентификатор является динамическим, но некоторая часть этого идентификатора (ariaId) является статической [я предполагаю].

Вы можете попробовать этот код :

elements = driver.find_elements_by_xpath('//div[contains(@id,'ariaId')]')
0 голосов
/ 02 мая 2018

Пожалуйста, проверьте, используя ниже xpath,

driver.find_elements_by_xpath('.//*[contains(@autoid,'_lvv') and @aria-haspopup='true']');
0 голосов
/ 02 мая 2018

Вы можете найти по атрибуту без значения

driver.find_elements_by_xpath('//*[@data-time]')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...