gpt4 book ai didi

java - 如何处理 Selenium 中动态变化的 ID

转载 作者:行者123 更新时间:2023-12-01 23:08:17 24 4
gpt4 key购买 nike

我有一个下拉菜单,单击它后会更改其 id

enter image description here

这是点击之前的 HTML 代码(此代码在页面中显示为灰色 {hidden})。

 <a class="headet_fonts" href="http://192.168.1.6/eprint_prod_3.8/ProductCatalogue/PriceCatalogue.aspx" onmouseout="javascript:displaynone('#FFFFFF');" onmouseover="javascript:onhovermenu('ProductCatalogue/PriceCatalogue.aspx','Products','Products',tabcolor,headerforecolor)">
<b>
<span id="**ctl00_header1_upperRepeater_ctl10_ModuleName**" class="headet_fonts header_colorbalck" style="color:black;">
Products
</span>
<input id="ctl00_header1_upperRepeater_ctl10_hdn_Forecolor" type="hidden" value="#FFFFFF" name="ctl00$header1$upperRepeater$ctl10$hdn_Forecolor">
</b>
</a>

点击后的HTML代码(此代码未隐藏):

<a class="headet_fonts" href="http://192.168.1.6/eprint_prod_3.8/ProductCatalogue/PriceCatalogue.aspx" onmouseout="javascript:displaynone('#FFFFFF');" onmouseover="javascript:onhovermenu('ProductCatalogue/PriceCatalogue.aspx','Products','navbar',tabcolor,'#FFFFFF')">
<b>
<span id="ctl00_header1_upperRepeater_ctl10_ActiveModuleName" class="ActiveModulenavigatorpanel" style="color:#FFFFFF;">
Products
</span>
</b>
</a>

在 Selenium 代码中我使用了 xpath:

//div[@id='Products']/a/b/span

找到它,但它显示NoSuchElementException。我无法使用 ID,因为它正在更改

最佳答案

只需使用不同的 xpath,您并不局限于所显示的路径。

您可以使用xpath的contains()函数,例如:

//span[contains(@id, 'ctl00_header1_upperRepeater_ctl10')]

或者尝试通过 a 标签选择 span:

//a[@class=='headset_fonts']//span
//a[contains(@href, 'ProductCatalogue/PriceCatalogue.aspx')]//span

要开发这些 xpath,请使用立即显示结果的工具(例如 Firefox 的 XPath Checker 插件)。这样你应该很快就能得到一个有效的 xpath。

关于java - 如何处理 Selenium 中动态变化的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22447104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com