Python 3 -单击下拉菜单中的一行,该菜单仅在鼠标悬停时可见



我正在尝试自动化登录到一个网站和下载报告的过程。

在选择要下载的报告时,您必须将鼠标悬停在网站上的菜单栏上,并将鼠标悬停在右侧选项卡上,将打开下拉菜单,然后单击所需的报告。

下拉菜单的截图(抱歉,没有点嵌入图片)

我几乎没有编码经验,我是Python 3的新手,所以我正在努力如何做到这一点。

使用Selenium库,我能够找到诸如用户和密码字段之类的东西,并传递信息以自动登录到站点。但是不知道如何在这个下拉菜单中抓取或指向正确的报告,以便简单地单击它。

这是一个片段的页面源代码…类名= rmText…它们的类名都是一样的…只有<span>中的文本是唯一的,但我不知道如何使用Python 3代码获取。

页面源代码截图

我知道一种方法来做到这一点使用VB脚本…但我更愿意继续使用Python 3(并在此过程中学习如何通过Python实现这一点)。下面的示例用于类似的报告,其中多行具有相同的类名,我们只需要一个名为"fill"的行。VB脚本的示例代码:

Set project = .Document.getElementsByClassName("UPC_Items")
    For Each elm In project
        If instr(elm.innerhtml,"Infill") then
            elm.Click
            Exit For
        End If
    Next    

如何使用Python 3实现相同的功能?Selenium是正确的库吗?

谢谢你的阅读,希望能帮助到一个Python新手!

试试下面的代码,希望能有所帮助:

 from selenium import webdriver
 from selenium.webdriver.common.action_chains import ActionChains
 import time
 drive = webdriver.Firefox()
 driver.get('your url')
 ....
 steps to reach your place where that menu link is presert
 ....
 element = driver.find_element_by_class("rmText")
 putmouse = ActionChains(driver).move_to_element(element)
 putmouse.perform()
 time.sleep(2)
 texttoclick = driver.find_element_by_xpath(".//li[@class='rmText']//span[text()='MCC']")
 actions.move_to_element(texttoclick).click().perform()

最新更新