元素在使用SendKeys时无法与Selenium Excel VBA交互
我正在尝试登录到一个站点,我正在使用元素在使用SendKeys时无法与Selenium Excel VBA交互,excel,vba,selenium,xpath,css-selectors,Excel,Vba,Selenium,Xpath,Css Selectors,我正在尝试登录到一个站点,我正在使用FindElementById。在下面的代码中,使用SendKeys的第一部分工作得很好,但是当尝试对密码字段使用相同的技术时,我收到一条错误消息,它告诉我该元素不可交互 Sub Test() Dim bot As New WebDriver With bot .AddArgument "--disable-notifications" .Start "Chrome", "https://ww
FindElementById
。在下面的代码中,使用SendKeys
的第一部分工作得很好,但是当尝试对密码字段使用相同的技术时,我收到一条错误消息,它告诉我该元素不可交互
Sub Test()
Dim bot As New WebDriver
With bot
.AddArgument "--disable-notifications"
.Start "Chrome", "https://www.excelforum.com/excel-programming-vba-macros/"
.Get "/"
.FindElementById("navbar_username").SendKeys "username"
.FindElementById("navbar_password").SendKeys "password"
'.FindElementByName("vb_login_password").SendKeys "password"
Stop
End With
End Sub
试着引用这个
您试图访问的页面已将一个web元素添加到另一个web元素上。i、 id为navbar\u password\u的web元素在id为navbar\u password的web元素上显示提示。尝试参考上面的链接来解决您的问题 当元素状态不可单击时会发生这种情况。您必须使用webdriver wait属性并确保元素状态是可单击的
WebDriverWait wait= new WebDriverWait(driver, 10);
WebElement e= wait.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_element")));
e.click();
你很接近。id属性为
navbar\u Password
的密码字段具有以下属性:
style="display: none;"
因此,您将无法与元素交互
要向用户名和密码字段发送字符序列,您可以使用以下任一选项:
- 使用
:FindElementById()
- 使用
:FindElementByCss()
- 使用
:findelementbypath()
工具书类 您可以在以下内容中找到一些有趣的讨论:
.FindElementById("navbar_username").SendKeys "username"
.FindElementById("navbar_password_hint").SendKeys "password"
.FindElementByCss("input#navbar_username").SendKeys "username"
.FindElementByCss("input#navbar_password_hint").SendKeys "password"
.FindElementByXPath("//input[@id='navbar_username']").SendKeys "username"
.FindElementByXPath("//input[@id='navbar_password_hint']").SendKeys "password"