【问题标题】:Click on a submenu with python selenium单击带有 python selenium 的子菜单
【发布时间】:2022-01-24 12:56:09
【问题描述】:

有人可以帮帮我吗?

[菜单和页面]

我试过 find_element_by:

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

xpath:每刷新一次页面,其xpath都会改变;

class menuItem:带来上面的菜单;

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

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

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

有人知道吗?

【问题讨论】:

  • 请分享你所有的代码
  • 在执行find_element_by_之前,您能否确认子菜单可见/展开?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python selenium webdriver


【解决方案1】:

根据提供的页面源,子菜单的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2016-02-19
    • 2019-02-27
    • 1970-01-01
    • 2016-11-12
    相关资源
    最近更新 更多