ElementNotVisbleError(不能单击元素)

敬礼,

我正在编写代码来使用Selenium和Excel VBA来刮取网站。 有问题的网站有一个菜单栏,其中菜单选项对于VBA只有在盘旋的时候才是可见的(当光标在文本上时,class =“hovered”,当光标不在文本上时,class =“”)。 此外,当进入我的代码,我无法点击链接使用自动化或手动。

请参阅下面的代码:

WebsiteURL = "https://navinet.navimedix.com/signed-out/session-expired? ReturnUrl=/" driver.Get WebsiteURL driver.Window.Maximize driver.FindElementById("LoginPortletUsername").SendKeys (UserName) 'Reads Username driver.FindElementById("LoginPortletPassword").SendKeys (Password) 'Reads password driver.FindElementById("btnSignInSubmit").Click Application.Wait (Now + TimeValue("0:00:20")) driver.FindElementById("mh-workflows-my-health-plans-menu").Click driver.FindElementById("workflows-menu-plan-aetna").Click Application.Wait (Now + TimeValue("0:00:10")) driver.Window.Activate driver.FindElementById("aetna-eligibility").Click 

代码一直工作到点,但是下面的选项访问menupath不起作用。

选项1(移动光标和点击)

 SetCursorPos 2221, 289 Call SingleClick 

 Private Sub SingleClick() SetCursorPos 2286, 69 'x and y position for Health Edge search mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 End Sub 

 Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long 'mouse position Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) 'user environment Public Const MOUSEEVENTF_LEFTDOWN = &H2 Public Const MOUSEEVENTF_LEFTUP = &H4 Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8 Public Const MOUSEEVENTF_RIGHTUP As Long = &H10 

选项2(移动光标和查找新类)

 SetCursorPos 2221, 289 driver.FindElementByClass("hovered").Click 

选项3(直接查找对象)

 driver.FindElementByXPath("//*[@id='vertical-menu']/li[4]/ul/li/a").Click 

选项4(使用通过菜单path移动到元素并单击)

 Set we = driver.FindElementByXPath("//*[@id='vertical-menu']/li[4]/ul/li/a") driver.Actions.MoveToElement(driver.FindElementById("aetna-eligibility")).MoveToElement(we).Click.Perform 

任何提示或替代将大大帮助。 这一直让我疯狂!