Selenium Python通过data-testid =“ menu”

时间:2020-10-27 15:27:22

标签: python selenium web-scraping whatsapp

我是硒的新手,出于学习目的,我试图在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)

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

1 个答案:

答案 0 :(得分:0)

为什么在其中有“自我”以及那些反斜杠?我想说您的第二次尝试接近正确,但是使用xpath而不是CSS Selector,并且不要忘记'span'之前的两个正斜杠:

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