Python-查找Xpath值,然后单击按钮
我想获得一些关于如何在特定xpath值中查找值的建议,在我的例子中,时间是:7:30pm。 然后在同一级别中单击“添加”按钮。(页面中有许多其他具有不同时间值的相同按钮)。参考附件图片,非常感谢您的帮助Python-查找Xpath值,然后单击按钮,python,pycharm,Python,Pycharm,我想获得一些关于如何在特定xpath值中查找值的建议,在我的例子中,时间是:7:30pm。 然后在同一级别中单击“添加”按钮。(页面中有许多其他具有不同时间值的相同按钮)。参考附件图片,非常感谢您的帮助 可能DevTools中的每个web浏览器都有右键单击获取XPATH的功能 但您也可以尝试为元素查找唯一的ID或CLASS(或其他唯一值,即样式=…)。或其父母或祖父母的唯一价值 如果有许多类似的元素,那么您可以获取所有元素,然后使用index-all\u times[1]-只处理一个元素 您的元
可能
DevTools
中的每个web浏览器都有右键单击获取XPATH
的功能
但您也可以尝试为元素查找唯一的ID
或CLASS
(或其他唯一值,即样式=…
)。或其父母或祖父母的唯一价值
如果有许多类似的元素,那么您可以获取所有元素,然后使用index
-all\u times[1]
-只处理一个元素
您的元素似乎有唯一的headers=“Times”
,可以在xpath
中使用
您还可以相对xpath
(从点开始
)进行部分搜索-首先查找tr
,然后在此tr
中查找//td[@headers=“Times”]
,然后在同一tr
中查找//td[@headers=“available”]/div/a
编辑:
如果我找不到唯一的元素,那么我会得到所有
tr
,因为它是时间和available
的父元素,我可以使用相对xpath在单个tr
中搜索一个时间和一个available
,然后对
循环使用
all_tr = html.xpath("//tr")
for tr in all_tr:
# relative xpath in `tr` (using `.` at start)
header = tr.xpath('.//td[@headers="Times"')
if "7:30" in header[0].text:
# relative xpath in `tr` (using `.` at start)
avaliable = tr.xpath('.//td[@headers="Avaliable"]')
avaliable[0].click()
可以在结束问题之前,您是否只需右键单击元素并复制完整的xpath。永远不要有代码或异常的图像。请参阅,也许DevTools中的每个web浏览器都有右键单击获取XPATH的功能。但您也可以尝试查找元素的unque ID或类。如果有许多类似的元素,那么您可以获取所有元素,然后使用index
-all_times[1]
-只处理一个元素。Daisho:xpath包含许多结果,我可以使用xpath查找按钮本身,但该表将添加新的额外可用时间,以便每天预订。Lakshya Raj:谢谢你的评论,我试图修改我的帖子,但我不能添加代码,它提到我不能上传照片,但我不能删除它。问题是有很多标题=“次”,它们都是一样的。(他们每天也在不断添加)。手动计算所需的列表,并使用[index]
获得所需的列表。如果您需要准确的时间7:30pm.
则获取所有tr
并检查每个tr
中的时间,直到找到7:30pm
。您不必为此仅使用xpath。最后,您可以尝试将xpath
与contains(@text,'7:30pm')
结合使用,谢谢您的回复。我是编程新手,我很难在帖子中发布原始代码:)很抱歉使用了代码图片。如果我理解正确,我需要存储两个变量,所有时间和按钮点击链接到索引中,比如:all_times[1],并将7:30pm与索引中的信息进行比较,然后我应该能够调用单击链接地址?我将获得所有tr
,因为它是Header
和available
的父级,然后在all_tr:Header=xpath(…)中为tr使用;如果header.text中的“7:30”:xpath(…可用…)。单击()。我在答案中添加了伪代码