XPath выбирает родительский элемент, только если существует дочерний элемент - PullRequest
0 голосов
/ 03 мая 2020
<element_1> 
    <element_2>Text</element_2> 
    <element_3> 
        <element_4> 
            <element_5>Test Text</element_5> 
        </element_4> 
        <element_4> 
        </element_4> 
    </element_3> 
    <element_6> 
        <element_7> 
            <element_8>0</element_8> 

Как мне написать xpath, чтобы найти все экземпляры element_4, которые содержат экземпляр element_5

Context

URL: https://www.amazon.com/b/ref=s9_acss_bw_cg_KOTHLPCG_1a1_w ? node = 565108 & pf_rd_m = ATVPDKIKX0DER & pf_rd_s = мерчендайзер-поиск-6 & pf_rd_r = PASRJV57NJ97XPYZW0GS & pf_rd_t = 101 & pf_rd_p = 1e1598 * 101 * 1010 1052 только ноутбуки, которые продаются. У ноутбуков, которые находятся в продаже, есть старая цена, написанная с помощью страйка, через которую написана ниже ее текущей цены. Мне нужны имена только тех ноутбуков, цена которых указана в их списке.

Очень плохо знаком с Selenium и Xpath, поэтому я надеюсь, что это имело смысл.

1 Ответ

0 голосов
/ 03 мая 2020

Для завершения будут выбраны имена ноутбуков в продаже (работает для всех страниц, исключенные элементы на странице 1 исключены):

//span[@data-a-strike="true" or contains(@class,"text-strike")][.//text()]/preceding::h2[@class][1]
...