XPath select 仅当子元素存在时才为父元素

XPath select parent element only if child element exists

<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_5

实例的 element_4 的所有实例

上下文

URL: https://www.amazon.com/b/ref=s9_acss_bw_cg_KOTHLPCG_1a1_w?node=565108&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=merchandised-search-6&pf_rd_r=PASRJV57NJ97XPYZW0GS&pf_rd_t=101&pf_rd_p=1e1598d2-28c3-4a64-91af-254d7a033ada&pf_rd_i=541966\

我正在使用 selenium,我正在尝试仅获取正在销售的笔记本电脑的名称。正在销售的笔记本电脑有一个旧价格,上面写有删除线,写在当前价格下方。我只想要列表中价格划线的笔记本电脑的名称。

对 Selenium 和 Xpath 很陌生,所以我希望这能理解。

要完成,这将 select 笔记本电脑名称促销(适用于所有页面,第 1 页上的特色商品除外):

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