python - 如何使用 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
解决方案
在您的特定情况下,最有效的解决方案是直接导航到包含您的主题标签的端点。所以你需要:
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
推荐阅读
- networking - 将 Internet 分配到 Baraccuda 防火墙中的不同端口
- c++ - 带 Gmock 的工厂模式
- r - R - Google Colab - 动态可视化不显示任何内容
- flutter - Flutter:使用插件构建需要符号链接支持
- reactjs - React on Heroku Local - 如何根据更改自动刷新响应应用程序
- ios - 无效的 Swift 支持。文件 XXXX.app/Frameworks/Users 没有此位置的正确文件类型
- rotation - 1.循环排序数组中的旋转数
- unity3d - 玩家在 Update() 中移动,但在 Unity 中没有 FixedUpdate()
- android - 如何防止底片将角形状动画化为正方形?
- c# - 为什么像 Winforms 内部类(默认情况下在应用程序内的类)这样的部分类不起作用?