Selenium Python проверяет, существует ли div - PullRequest
0 голосов
/ 12 марта 2019

Я отправляю сообщение в Facebook, я использую

status = x.find_element_by_xpath(".//div[@class='_5pbx userContent _3576']/p[1]").text

для получения сообщения о статусе и html-структуры сообщения в Facebook, как здесь

<div class="_5pbx userContent _3576" data-ft="{{"tn":"K"}}" id="js_33">
  <p>Bersama Ketua APTIKOM Yogyakarta, Bapak Dr. Agfianto Eko Putra, M.Si. @agfi68<br> Terima kasih banyak telah memesan buku Digital.Is. Me</p>
</div>

иногда p-тег внутри div, но иногда не внутри div

как я могу создать status = x.find_element_by_xpath (".// div [@class = '_ 5pbx userContent _3576'] / p [1]"). Text

которые поддерживают, если внутри div или нет внутри div

Ответы [ 3 ]

0 голосов
/ 12 марта 2019

Используйте find_element_by_xpath(".//div[@class='_5pbx userContent _3576']"), чтобы найти элемент <div>.

Затем вы можете проверить этот элемент, чтобы увидеть, имеет ли он дочерний элемент <p>.

0 голосов
/ 12 марта 2019

Вы хотите выбрать два разных элемента в зависимости от определенных условий. Итак, вы должны использовать:

.//div[@class='_5pbx userContent _3576'][not(p[1])]|.//div[@class='_5pbx userContent _3576']/p[1]

В общем случае предполагается наличие переменных $XPathExpression1, $XPathExpression2 и $Condition:

$XPathExpression1[$Condition]|$XPathExpression2[not($Condition)]
0 голосов
/ 12 марта 2019

Вы можете сделать x.find_elements_by_xpath и посмотреть, равна ли длина нулю.

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