首页 > 解决方案 > 如何使用 Selenium 通过文本查找元素?

问题描述

我正在尝试使用 Selenium 在 Instagram 上单击主题标签,以便查看与该主题标签相关的所有图像。

问题是,您正在搜索的主题标签并不总是在顶部......有没有办法找到并单击我正在搜索的主题标签?

在这里查看问题

如果你能帮助我会很酷:)

def likeByHashtag(self,hashtag):
    #click on the magnifying glass
    element = WebDriverWait(driver, 60).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/section/nav[2]/div/div/div[2]/div/div/div[2]/a")))
    element.click()
    #type in searchbar
    element = WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.XPATH, "/html/body/div[1]/div/div/section/nav[1]/div/header/div/h1/div/div/div/div[1]/label/input")))
    element.send_keys("#" +hashtag)
    #click on #
    element = xxx

标签: pythonselenium

解决方案


在您的特定情况下,最有效的解决方案是直接导航到包含您的主题标签的端点。所以你需要:

driver.get('https://www.instagram.com/explore/tags/' + hashtag)在你的likeByHashtag功能中。

因此:

def likeByHashtag(self,hashtag):
    driver.get('https://www.instagram.com/explore/tags/' + hashtag)

将归档您要查找的内容。

否则,使用 xPath 的另一个解决方案是:

driver.find_element_by_xpath(f'//div[contains(., {hashtag})]')

归功于@kjhughes


推荐阅读