如何编写XPath定位预订网站中固定的9:00 PM时段?
如何编写稳定定位9:00 PM时段的XPath?
你的问题出在依赖绝对路径+固定索引,这种写法极易因页面结构变化(比如每周时段数量调整)失效,而且原XPath试图直接匹配父div的文本,但实际目标文本在class为time的子div里,所以定位不到。
以下是几种稳定的写法:
直接定位目标子元素
如果需要操作的是显示“9:00 pm”的time类div,用这个XPath:
browser.find_element("xpath", "//div[@class='time' and text()='9:00 pm']")
如果文本前后可能有空格,用normalize-space处理:
browser.find_element("xpath", "//div[@class='time' and normalize-space(text())='9:00 pm']")
定位包含目标子元素的父div
如果需要点击的是父div(比如时段选择的容器),用这个写法:
browser.find_element("xpath", "//div[div[@class='time' and text()='9:00 pm']]")
同样处理空格:
browser.find_element("xpath", "//div[div[@class='time' and normalize-space(text())='9:00 pm']]")
结合表格上下文(可选)
如果需要限定在表格的特定列(比如原路径里的第6列td),可以保留上下文但不用绝对路径:
browser.find_element("xpath", "//table//td[6]//div[@class='time' and text()='9:00 pm']/..")
这些写法都不依赖固定的层级索引,而是通过元素的class属性和文本内容定位,能适配每周的结构变化。
内容的提问来源于stack exchange,提问作者Hassan Syed
相关产品推荐
相关产品推荐

