Reputation: 9568
I am trying to login to a site and I am using FindElementById
. In the following code the first part of using SendKeys
works well but when trying to use the same technique for the password field, I get an error message which tells me that the element is not interactable
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
Upvotes: 2
Views: 4787
Reputation: 193308
You were pretty close. The Password field with id attribute as navbar_password
is having the property:
style="display: none;"
So you won't be able to interact with the element.
To send a character sequence both to the User Name and Password field you can use either of the following Locator Strategies:
Using FindElementById()
:
.FindElementById("navbar_username").SendKeys "username"
.FindElementById("navbar_password_hint").SendKeys "password"
Using FindElementByCss()
:
.FindElementByCss("input#navbar_username").SendKeys "username"
.FindElementByCss("input#navbar_password_hint").SendKeys "password"
Using FindElementByXPath()
:
.FindElementByXPath("//input[@id='navbar_username']").SendKeys "username"
.FindElementByXPath("//input[@id='navbar_password_hint']").SendKeys "password"
You can find a couple of revelant discussions in:
Upvotes: 2
Reputation: 61
This happens when the element state is not clickable. You have to use webdriver wait property and make sure that element state is clickable
WebDriverWait wait= new WebDriverWait(driver, 10);
WebElement e= wait.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_element")));
e.click();
Upvotes: 1
Reputation: 63
Try referring this webpage
The page you are trying to access has added a web element over another web element. i.e web element of id navbar_password_hint over web element of id navbar_password. Try referring above link to solve your problem.
Upvotes: 1