1

I am trying to access the HTML within two iframes using Selenium Basic in VBA, as IE has been blocked on our machines, and Python, etc. are not available to us.

Previously I could access the html with this:

Dim IE As InternetExplorerMedium
Set IE = New InternetExplorerMedium

' actual website excluded as it is a work hosted website which requires login, etc.
website = "..."
IE.navigate (website)

Dim IEDocument As HTMLDocument
Set IEDocument = IE.document.getElementById(id1).contentDocument.getElementById(id2).contentDocument

From there I would have access to all the HTML elements which I could work with.

Now I am trying the following with Selenium Basic:

Set cd = New Selenium.ChromeDriver
website = "..."

cd.Start baseUrl:=website

cd.Get "/"
Dim af1 As Selenium.WebElement, af2 As Selenium.WebElement
Set af1 = cd.FindElementById("CRMApplicationFrame")
Set af2 = af1.FindElementById("WorkAreaFrame1")

It works up to the last line, as it is able to set af to the "CRMApplicationFrame" id; however, I am unable to get inside of it.

I think the solution lies in executing a bit of JavaScript, similar to as in this video: https://www.youtube.com/watch?v=phYGCGXGtEw

Although I don't have a #ShadowDOM line, I do have a #document line.

Based on and trying to adapt the video I have tried the following:

Set af2 = cd.ExecuteScript(Script:="return arguments[0].contentDocument", arguments:=af1 )

However, that did not work.

I also tested:

Dim af1 As Selenium.WebElement
Set af1 = cd.FindElementById("CRMApplicationFrame")
call cd.SwitchToFrame (af1)

Debug.Print cd.PageSource

However, the SwitchToFrame line won't execute, with a 438 error: Object doesn't support this property or method.

Any advice or guidance on how I could succeed would be highly appreciated!

1 Answer 1

1

Replace:

call cd.SwitchToFrame (af1)

with:

cd.SwitchToFrame "CRMApplicationFrame"

You can find a relevant detailed discussion in Selenium VBA Excel - problem clicking a link within an iframe

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.