首页 > 解决方案 > 硒基础。如何处理错误的登录信息

问题描述

我目前编写了一个 excel 宏,它显示一个要求输入用户名和密码的用户表单。输入信息时,会启动 selenium chromedriver,打开登录页面,并发送用户输入的登录凭据以供输入。如果信息正确,这很有效,但如果发送了错误的信息,显然它不会登录,因此其余代码运行以查找页面上不存在的数据,我得到一个运行时错误。我想要某种识别登录错误的代码,通过消息框(或其他方式)通知用户,然后退出子。这就是我所拥有的。

'SSO is the username in this case
Dim SSO
Dim password
SSO = SSOText.Value
password = passwordText.Value

Dim cd As Selenium.ChromeDriver
Set cd = New Selenium.ChromeDriver
cd.Start
cd.Get "desiredURL"
'wait 5 seconds for page to load (may need to change time)
Application.Wait (Now + TimeValue("00:00:06"))

'store HTML locations as variables
Dim UsernameInput As Selenium.WebElement
Dim PasswordInput As Selenium.WebElement
Dim LogInButton As Selenium.WebElement
Set UsernameInput = cd.FindElementByName("username")
Set PasswordInput = cd.FindElementByName("password")
Set LogInButton = cd.FindElementByName("submit")

'send the user entered login credentials to HTML address
UsernameInput.SendKeys SSO
PasswordInput.SendKeys password
'click login
LogInButton.Click
'wait for login to load page
Application.Wait (Now + TimeValue("00:00:05"))

'grab data
Dim lineTable As Selenium.WebElement
Set lineTable = cd.FindElementById("lineTable")
lineTable.AsTable.ToExcel ThisWorkbook.Worksheets("C2 1st Shift Production Report").Range("X2")

'clear data from userform
Unload Me

此外,我在代码中写了明确的等待以等待页面加载。这些工作 95% 的时间都有效,但 5% 的时间并没有等待足够长的时间。如果有人知道一种方法来保证我不会从未加载的页面中得到运行时错误,那也很棒!谢谢!

标签: vbaselenium

解决方案


推荐阅读