我认为您正在询问我们需要单击下拉列表菜单项的场景。我们可以使用 Selenium 在 python 中自动化它。
为了手动执行此操作,首先我们需要通过将鼠标悬停在父菜单上来调出下拉列表菜单。然后从显示的下拉菜单中单击所需的子菜单。
使用 Selenium WebDriver 中的 ActionChains 类,我们可以以与手动相同的方式执行此步骤。该方法描述如下 -
第一步:导入 webdriver 模块和 ActionChains 类
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
第 2 步:打开 Firefox 浏览器并加载 URL。
site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)
第 3 步:通过传递驱动程序对象创建 ActionChains 对象
action = ActionChains(driver);
第 4 步:在页面中找到第一级菜单对象,并使用方法“move_to_element()”将光标移动到该对象上。方法 perform() 用于执行我们在动作对象上构建的动作。对所有对象执行相同操作。
firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()
第 5 步:使用方法 click() 单击所需的菜单项
secondLevelMenu.click()
最后的代码块是这样的:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)
action = ActionChains(driver);
firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()
secondLevelMenu.click()
您可以driver.find_element_by_id()
根据您的工作替换为 selenium 中可用的任何其他 find_elemnt 方法。希望对您有所帮助。