单击带有 python selenium 的子菜单

Click on a submenu with python selenium

有人可以帮帮我吗?

[菜单和页面]

我试过了find_element_by:

td: 我找不到哪个是正确的 id 索引;

xpath: 每次页面刷新它的xpath都会改变;

class menuItem: 把菜单带到上面;

text_link: 没有这样的元素:无法定位元素;

css td.menuItemSeleccionado: 没有这样的元素:无法定位元素;

classe menuItemSeleccionado: 没有这样的元素:无法定位元素

有人知道吗?

根据提供的页面源代码,子菜单的 XPath 可能如下所示:

"//td[contains(text(), 'Pesquisa Contratos')]"

要点击它,您必须:

  • 1 单击(或悬停)父菜单

    可能有更好的方法来定位菜单项,但您可以尝试使用 部分文字:

    点击:

    WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, 
    "//*[contains(text(), 'De Contratos E Cart')]"))).click()
    

    悬停:

    menu_item = WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, 
    "//*[contains(text(), 'De Contratos E Cart')]")))
    ActionChains(driver).move_to_element(menu_item ).perform()
    
  • 2 等待子菜单元素可点击,点击

    WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, 
    "//td[contains(text(), 'Pesquisa Contratos')]"))).click()
    

进口

from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait