所以,我面临一个挑战,问题是,该网页具有一种列表,其中某些元素的侧面带有文本和按钮,如下所示:
[目的是通过引用特定的文本来单击按钮(因为按钮的文本对于所有按钮都是相同的-“按钮”,例如,仅单击“元素A”和“元素C”的按钮]
我分析了HTML代码,尝试将xpath定位到所需的按钮有点复杂(至少对我来说)
本质上,我将有一个变量来存储元素Text的字符串(“ Element A”,“ Element B” ...),然后单击链接到它们的按钮] >
HTML代码看起来像这样(那些字符串是类,仅供参考,但它们表示每个节点,例如div或span和嵌套的子代;对不起,绘制混乱)
所以,我在这里迷路了,我试图寻找父轴和祖轴,但实际上我不太了解如何正确实现正确的xpath,只是作为参考,我尝试完成,尽管我确定这不是正确的语法
// span [(text()='Element A')] //(寻找同时包含Element Text和Element Button的主父对象)/((在包含“元素A“)
事实是,由于lsit上有很多元素,每个主父元素都是不同的,这就是为什么我使用元素Text(“元素A”,“元素B” ...)来定位特定的“按钮“
任何建议或建议都会受到高度赞赏!也许一些使用轴或谓词的技巧?
谢谢!
HTML页面的可操作部分,因为放置所有HTML代码不是那么实际,所以它很大例如,我所指的元素是:
然后,我需要根据我要定位的元素文本来定位所需的按钮(带有文本“ Share”),例如:Hellblade Senua的牺牲
<div aria-busy="false" class="o8kakjsu role="listbox">
<div class="a8s20v7p k5wvi7nf buofh1pr pfnyh3mw l9j0dhe7 du4w35lb">
<div>
<div class="rq0escxv">
<div class="rq0escxv">
<div class="rq0escxv ">
<div class="cbu4d94t e5nlhep0 aodizinl">
<div class="buofh1pr">
<div class="dati1w0a">
<div class="j83agx80 ">
<div class="knvmm38d">
<h2 class=" " dir="auto">
<div class="l9j0dhe7 stjgntxs ni8dbmo4" style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;">All</div>
</h2>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class="muag1w35 b20td4e0">
<div data-vc-ignore-dynamic="1" style="padding-left: 8px; padding-right: 8px;">
<div class=" a8c37x1j">
<div class="">
<div class="">
<div class="">
<a aria-label="Senua's Saga Hellblade 2 🍷 Sacrifice" class="oajrlxb2" tabindex="0">
<div class="q9uorilb l9j0dhe7 pzggbiyp du4w35lb">
<svg class="" data-vc-ignore-dynamic="1" role="none" style="height: 40px; width: 40px;">
<mask id="jsc_c_4e">
<rect cy="20" fill="white" height="40" rx="8" ry="8" width="40" x="0" y="0"></rect>
</mask>
<g mask="url(#jsc_c_4e)">
<image x="0" y="0" height="100%"></image>
<rect class="mlqo0dh0 georvekb s6kb5r3f" cy="20" fill="white" height="40" rx="8" ry="8" width="40" x="0" y="0"></rect>
</g>
</svg>
</div>
</a>
</div>
</div>
<div class="ow4ym5g4 btwxx1t3 l9j0dhe7">
<div class="gs1a9yip">
<div class="" id="jsc_c_4d">
<div class="j83agx80 cbu4d94t ew0dbk1b irj2b8pg">
<div class="qzhwtbm6 knvmm38d"><span class="" dir="auto">Senua's Saga Hellblade 2 🍷 Sacrifice</span></div>
<div class="qzhwtbm6 knvmm38d"><span class="" dir="auto">Group</span></div>
</div>
</div>
</div>
<div class="bi6gxh9e ozuftl9m aov4n071 l9j0dhe7 o8rfisnq" aria-labelledby="jsc_c_4d">
<div class="bp9cbjyn j83agx80 btwxx1t3">
<div class="">
<div aria-label="Share" class="oajrlxb2 oo1teu6h " role="button" tabindex="0">
<div class="c4xchbtz by2jbhx6">
<div class="rq0escxv l9j0dhe7 "><span class="oi732d6d " dir="auto">Share</span></div>
</div>
<div class="" data-novc="1"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div data-vc-ignore-dynamic="1" style="padding-left: 8px; padding-right: 8px;">
<div class="ue3kfks5 pw54ja7n uo3d90p7 l82x9zwi a8c37x1j">
<div class="scb9dxdr">
<div class="nqmvxvec tvfksri0 aov4n071 l9j0dhe7">
<div class="">
<a aria-label="Hellblade: Senua's Sacrifice & Senua's Saga" class="oajrlxb2 tabindex="0">
<div class=" du4w35lb">
<svg class="pzggbiyp" data-vc-ignore-dynamic="1" role="none" style="height: 40px; width: 40px;">
<mask id="jsc_c_4g">
<rect cy="20" fill="white" height="40" rx="8" ry="8" width="40" x="0" y="0"></rect>
</mask>
<g mask="url(#jsc_c_4g)">
<image x="0" y="0" height="100%" ></image>
<rect class="mlqo0dh0 georvekb s6kb5r3f" cy="20" fill="white" height="40" rx="8" ry="8" width="40" x="0" y="0"></rect>
</g>
</svg>
</div>
</a>
</div>
</div>
<div class="btwxx1t3 l9j0dhe7">
<div class="">
<div class="" id="jsc_c_4f">
<div class=" ew0dbk1b irj2b8pg">
<div class="" dir="auto">Hellblade: Senua's Sacrifice & Senua's Saga</span></div>
<div class="qzhwtbm6 knvmm38d"><span class="hzawbc8m" dir="auto">group</span></div>
</div>
</div>
</div>
<div class="bi6gxh9e ozuftl9m aov4n071 l9j0dhe7 o8rfisnq" aria-labelledby="jsc_c_4f">
<div class="bp9cbjyn j83agx80 btwxx1t3">
<div class="">
<div aria-label="Share" class=" tv7at329" role="button" tabindex="0">
<div class="">
<div class=""><span class=" g0qnabr5" dir="auto">Share</span></div>
</div>
<div class="" data-novc="1"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div data-vc-ignore-dynamic="1" style="padding-left: 8px; padding-right: 8px;">
<div class="ue3kfks5 pw54ja7n uo3d90p7 l82x9zwi a8c37x1j">
<div class="">
<div class="nqmvxvec j83agx80 cbu4d94t bi6gxh9e tvfksri0 aov4n071 l9j0dhe7">
<div class="">
<a aria-label="AutoHotkey" class="oajrlxb2" tabindex="0">
<div class="q9uorilb l9j0dhe7 pzggbiyp du4w35lb">
<svg class="pzggbiyp" data-vc-ignore-dynamic="1" role="none" style="height: 40px; width: 40px;">
<mask id="jsc_c_4i">
<rect cy="20" fill="white" height="40" rx="8" ry="8" width="40" x="0" y="0"></rect>
</mask>
<g mask="url(#jsc_c_4i)">
<image x="0" y="0" "></image>
<rect class="mlqo0dh0 georvekb s6kb5r3f" cy="20" fill="white" height="40" rx="8" ry="8" width="40" x="0" y="0"></rect>
</g>
</svg>
</div>
</a>
</div>
</div>
<div class="">
<div class=" du4w35lb rj1gh0hx f10w8fjw pybr56ya">
<div class="" id="jsc_c_4h">
<div class="j83agx80 cbu4d94t ew0dbk1b irj2b8pg">
<div class="qzhwtbm6 knvmm38d"><span class="" dir="auto">AutoHotkey</span></div>
<div class="" dir="auto">Public group</span></div>
</div>
</div>
</div>
<div class="" aria-labelledby="jsc_c_4h">
<div class="bp9cbjyn j83agx80 btwxx1t3">
<div class="">
<div aria-label="Share" class="oajrlxb2" role="button" tabindex="0">
<div class="">
<div class=""><span class="" dir="auto">Share</span></div>
</div>
<div class="" data-novc="1"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
所以,我面临一个挑战,问题是,网页具有一种列表,其中某些元素的旁边带有文本和按钮,例如:目的是单击...。
经过长时间的研究,我终于做到了!观看本教程:https://www.youtube.com/watch?v=a6B6XYbviRI
根据您的样本,这是您应该使用的。以“地狱之刃:塞努阿的牺牲与塞努阿的传奇”为例: