找到最近的Button Selenium Python

问题描述 投票:0回答:2

在找到包含特定主题标签husky(这是一个超链接)的注释后,我试图单击“删除注释”按钮。

由于有多个“删除注释”按钮,我认为最好的方法是找到带有主题标签的注释,然后单击最近的按钮,但我可能在那里错了。

在图片中,我想点击标签下方突出显示的按钮,而不是下面:

enter image description here

到目前为止,我有

self.browser.find_element_by_xpath('//a[@href="/explore/tags/husky/"]')

哪个成功找到了标签,但之后我很难过。

python html selenium web-scraping automation
2个回答
3
投票

您可以使用下面的xpath之一。

说明:找到带有“#hasky”文本的文件,获取带有“menuitem”角色的第一个父级li并获取子按钮(带有“删除注释”标题属性):

//a[.='#husky']/ancestor::li[@role='menuitem'][1]//button

//a[.='#husky']/ancestor::li[@role='menuitem'][1]//button[@title='Delete Comment']

//a[contains(@href, "/explore/tags/husky/")]/ancestor::li[@role='menuitem'][1]//button

//li[@role='menuitem' and .//a[.='#husky']]//button[@title='Delete Comment']

-2
投票

简单的东西

//a[.='#husky']//following::button[@title='Delete Comment'][1]

应该工作得很好。如果是我,我会将其包装在一个方法中并传入链接文本以删除相应的注释。然后,您可以获取链接文本并将其放入#husky位置的定位器中。

def delete_comment(comment)
    driver.find_element_by_xpath(f"//a[.='{comment}']//following::button[@title='Delete Comment'][1]").click()
© www.soinside.com 2019 - 2024. All rights reserved.