TinySeleniumVBA icon indicating copy to clipboard operation
TinySeleniumVBA copied to clipboard

Add Method. SwitchToFrame, SwitchToParentFrame, GetCurrentFrame

Open ghost opened this issue 4 years ago • 2 comments
trafficstars

TinySeleniumVBA WebDriver.cls

' ==========================================================================
' Frame operations
' ==========================================================================

' Switch to Frame               '2021/6/17 add ishi
Public Function SwitchToFrame(ElementId As String, _
                              Optional ByVal sessionid As String = vbNullString)
    Dim data    As New Dictionary
    Dim subdata As New Dictionary
    subdata.Add "ELEMENT", ElementId
    subdata.Add ELEMENT_KEY, ElementId
    If sessionid <> vbNullString Then
        subdata.Add "sessionId", sessionid
    End If
    data.Add "id", subdata

    Execute CMD_SWITCH_TO_FRAME, data
End Function

' Switch to Parent Frame        '2021/6/17 add ishi
Public Function SwitchToParentFrame(Optional ByVal sessionid As String = vbNullString)
    Dim data    As New Dictionary
    If sessionid <> vbNullString Then
        data.Add "sessionId", sessionid
    End If

    Execute CMD_SWITCH_TO_PARENT_FRAME, data
End Function

' Get Current Frame             '2021/7/9 add ishi
Public Function GetCurrentFrame(Optional ByVal sessionid As String = vbNullString) As String
    Dim data    As New Dictionary
    data.Add "script", "return self.name"
    Dim args    As Variant
    args = Array()
    data.Add "args", args
    
    If sessionid <> vbNullString Then
        data.Add "sessionId", sessionid
    End If

    GetCurrentFrame = Execute(CMD_W3C_EXECUTE_SCRIPT, data)
End Function

TinySeleniumVBA WebElement.cls

' ==========================================================================
' Frame operations
' ==========================================================================

' Switch to Frame                   '2021/6/22 add ishi
Public Function SwitchToFrame()
    Driver_.SwitchToFrame ElementId_, SessionId_
End Function

ghost avatar Sep 16 '21 11:09 ghost

Hi @ezagdd - in your WebDriver SwitchToFrame Function, shouldn't the sessionId key be added to data, instead of subdata? For example:

    If sessionid <> vbNullString Then
        data.Add "sessionId", sessionid
    End If

GCuser99 avatar Dec 31 '21 22:12 GCuser99

ありがとう。data に sessionId キー を追加する様に変えて動作確認済。 Thanks. I changed it to add the sessionId key to the data and it works.

Public Function SwitchToFrame(ByVal ElementId As String, _
                              Optional ByVal sessionId As String = vbNullString)
    Dim Data    As New Dictionary
    Dim subdata As New Dictionary
    subdata.Add "ELEMENT", ElementId
    subdata.Add ELEMENT_KEY, ElementId
    If sessionId <> vbNullString Then
        Data.Add "sessionId", sessionId
    End If
    Data.Add "id", subdata

    Execute CMD_SWITCH_TO_FRAME, Data
End Function

ghost avatar Jan 10 '22 05:01 ghost