【问题标题】:Selenium Python find span by data-testid="menu"Selenium Python 通过 data-testid="menu" 查找范围
【发布时间】:2020-10-27 15:27:22
【问题描述】:

我是 selenium 的新手,为了学习,我正在尝试进入 Whatsapp 网络并从对话中下载图像......这个想法来自网络上的一些教程,但它们不起作用。 我正在使用 python 3.8

我需要按一个按钮来打开菜单,它的标识是

    <span data-testid="menu" data-icon="menu" class="">
       <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
          <pathfill="currentColor" d="M12 7a2 2 0 1 0-.001-4.001A2 2 0 0 0 12 7zm0 2a2 2 0 1 0-.001 3.999A2 2 0 0 0 12 9zm0 6a2 2 0 1 0-.001 3.999A2 2 0 0 0 12 15z"></path>
       </svg>
    </span>

我尝试了几种方法来做到这一点,例如我发布了 2 次尝试:

    menu = self.driver.find_element_by_xpath("//span[@data-testid= \"menu\"]")
    menu = self.driver.find_element_by_css_selector("span[@data-testid='menu']")
    menu = self.driver.find_element_by_xpath("//div[@title= \"menu\"]/span")

编辑: 我收到的消息错误是:

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[@title= "menu"]"}
  (Session info: chrome=86.0.4240.111)

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 用实际的问题描述替换 "doesn't work"
  • 删除"//span[@data-testid= \"menu\"]"中的空格。使用"//span[@data-testid=\"menu\"]"
  • 试试这个:driver.find_element_by_xpath("//span[@data-testid='menu']")
  • 实际错误是什么?
  • 我收到的消息错误是 Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[@title="menu"] "}(会话信息:chrome=86.0.4240.111)

标签: python selenium web-scraping whatsapp


【解决方案1】:

为什么你有'self'和那些反斜杠?我想说你的第二次尝试接近正确,但使用 xpath,而不是 CSS 选择器,并且不要忘记 'span' 之前的两个正斜杠:

menu = driver.find_element_by_xpath("//span[@data-testid='menu']")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 2020-07-18
    • 2018-12-24
    • 2020-10-30
    • 1970-01-01
    相关资源
    最近更新 更多