查找Xpath对每个登录都是唯一的元素

2024-04-29 04:49:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python web自动化selenium脚本

在脚本中,我使用driver.find_element_by_xpath('xpath')在Binary.com上查找元素。这意味着我必须预加载Binary.com并复制需要查找的元素的XPath。对于大多数元素,该方法都有效,但对于少数元素,我意识到Xpath对于每个登录都是唯一的

例如,如果我现在登录并尝试复制某个元素的xpath,它将是//*[@id="tp1602844250562"],但如果重新加载页面或尝试登录到其他窗口,xpath将更改为//*[@id="tp1602844157070"]。请注意,它们不是相同的id号。这意味着我不能在单独的页面登录上使用一个xpath

所需元素具有HTML代码:

<input type="text" class="time hasTimepicker" tab-index="-1" value="00:00" readonly="" id="tp1602844157070">

请参阅提供的图像以了解清晰的html代码html code


Tags: 代码脚本comwebid元素bydriver
3条回答

尝试将xpath表达式更改为

//input[starts-with(@id,"tp")]

或者,如果它不总是input

//*[starts-with(@id,"tp")]

为什么不使用class而不是id呢?试试这个xpath

driver.find_element_by_xpath('//input[@class = "time hasTimepicker"]')

您可以在下面尝试使用class而不是id,因为id是从DB中提取的,我猜-

//div[@class='date-time']//input[contains(@class,'time')]

相关问题 更多 >