Reputation: 337
I'm using Selenium to do some webscraping.
I always struggle with finding elements when Name or ID isn't an options.
The page is https://www.portfolio123.com/holdings.jsp?portid=1637063
And I'm trying to find the log in button.
the element looks like:
I've tried
FindElementByClass("btn-primary btn-sm", 10000)
FindElementsByLinkText("Log In", 10000)
FindElementByXPath("//div[@class='btn btn-primary btn-sm']//[@href='javascript:void(goToLoginPage())")
But without any success (I suspect I need to use XPath, but I can't seem to get it right
Any help please? (and if you could explain how to figure this out, so I don't have the issues in future that would be really appreciated)
Upvotes: 1
Views: 10957
Reputation: 193308
To locate the element Log In you can use either of the following Locator Strategies:
Using FindElementByLinkText:
FindElementByLinkText("Log In")
Using FindElementByCss:
FindElementByCss("a[href*='goToLoginPage']")
Using FindElementByXPath:
FindElementByXPath("//a[contains(@href, 'goToLoginPage')]")
Upvotes: 1
Reputation: 71
I tested. try this code below code. its working for me..
Sub loginCode()
Dim bot As New WebDriver
bot.start "chrome", "https://www.portfolio123.com/holdings.jsp?portid=1637063"
bot.Get "/"
Call WaitForSec(5)
bot.FindElementByXPath("//*[@id=""wrapper""]/div/div/div/a[1]").Click
End Sub
Sub WaitForSec(Sec As Integer)
Dim lngTime As Long
lngTime = Timer
While Timer < lngTime + Sec
DoEvents
Wend
End Sub
Upvotes: 1