我目前正在python中使用Selenium chromedriver,我想将其折叠打开。
<a id="pp-T0-81" href="javascript:void(0)" data-action="a-expander-toggle" class="a-expander-header a-declarative a-expander-inline-header pmts-apply-claim-code a-spacing-base a-link-expander" data-a-expander-toggle="{"allowLinkDefault":true, "expand_prompt":"", "collapse_prompt":""}"><i class="a-icon a-icon-collapse"></i><span class="a-expander-prompt"><span class="a-size-base xh-highlight">Voer een cadeaubon- of promotiecode in.</span></span></a>
但是,刷新页面时,id="pp-T0-81"
似乎会发生变化。
不是很有经验,但我尝试使用Xpath
但这似乎不起作用。
很难知道 XPath 在您的场景中有什么意义,但如果您认为data-action
和class
是唯一的并且会保持稳定(您说id
一直在变化(,那么您可以使用这两个:
const paragraphCount = document.evaluate( `//a[@data-action='a-expander-toggle'][@class='a-expander-header a-declarative a-expander-inline-header pmts-apply-claim-code a-spacing-base a-link-expander']`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue
console.log(paragraphCount)
<a id="pp-T0-81" href="javascript:void(0)" data-action="a-expander-toggle" class="a-expander-header a-declarative a-expander-inline-header pmts-apply-claim-code a-spacing-base a-link-expander" data-a-expander-toggle="{"allowLinkDefault":true, "expand_prompt":"", "collapse_prompt":""}"><i class="a-icon a-icon-collapse"></i><span class="a-expander-prompt"><span class="a-size-base xh-highlight">Voer een cadeaubon- of promotiecode in.</span></span></a>
使用动态 id 进行测试并不是一个可靠的主意。我建议使用 DOM 嵌套来定位元素。