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
任何提示或替代将大大帮助。 这一直让我疯狂!