Как я могу нажать на ссылку, которая доступна в веб-таблице? - PullRequest
0 голосов
/ 10 февраля 2019

Spy screenshot

Я пытаюсь нажать на ссылку, но не могу этого сделать из-за WebTable.

Итак, я создал свою библиотеку функций, и это код для ссылки, и я пытаюсь вызвать ее.Я использовал имя FYI.

Call ClickLink ("sign-in") 



Sub ClickLink(LinkName)

 Set myPage=Browser("title:=.*").Page("title:=.*").Webtable()
 Set wLink = description.Create()  
    wLink("micClass").value="Link"  

    Set allLinks = myPage.ChildObjects(wLink) 
    TotalLinks = allLinks.count() 

    For Iterator = 0 To TotalLinks -1 
        If allLinks(i).GetRoproperty("name") = LinkName Then
            allLinks(i).click
            wait(3) 
            Exit For   

    ElseIf TotalLinks -1 Then 
        reporter.ReportEvent micFail, "Find Link", LinkName 
    End If  
    Next

    Set myPage = Nothing    
    Set wLink = Nothing 
    Set allLinks = Nothing


 End Sub

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Вы можете использовать эту функцию, которую я создал некоторое время назад, она очень динамична, поэтому она принимает любые значения, которые присутствуют

Function DARRTS_Click_Webelement_From_Webtable(clasVal,htmlidVal,Elementinnertext_To_Click,index)
On error resume next
Dim oDesc
'create description of the object
Set oDesc = Description.Create
oDesc.Add "MicClass","WebTable"
oDesc.Add "class",clasVal
oDesc.Add "html id",htmlidVal

If index <> "" Then
    oDesc.Add "index", index
End If

Element_innertxtVal = Elementinnertext_To_Click

i_RowCount = PageObj.Webtable(oDesc).RowCount

For rowNum = 1 to i_RowCount

    For ColNum = 1 to PageObj.Webtable(oDesc).ColumnCount(i_RowCount)

    set o_ElementObject = PageObj.Webtable(oDesc).childitem(rowNum,ColNum, "WebElement",0)

     s_ObjectName = o_ElementObject.GetROProperty("innertext")

    if s_ObjectName = s_ElementClassName then

    o_ElementObject.click

    'your passing report

    Else

    ' your failing report

    end if

    Next

Next
On error goto 0

'clean up
Set oDesc = nothing
Set o_ElementObject = nothing

Функция завершения

Где:

classVal - значение класса объекта webtable

index - индекс num, если существует несколько ссылок с одним и тем же Text.Pass Blank "", если для индекса нет необходимости

htmlidVal- значение класса объекта веб-таблицы

Elementinnertext_To_Click- внутренний текст веб-элемента, который вы хотите щелкнуть из объекта веб-таблицы

0 голосов
/ 10 февраля 2019

WebTable никоим образом не должен мешать идентификации ссылки, что заставляет вас думать, что это так?В UFT вы можете опустить промежуточные уровни в иерархии DOM.

На снимке экрана видно, что объект Link уже находится в хранилище объектов, попробуйте щелкнуть по нему простым способом.

 Browser("Register: Mercury Tours").Page("Register: Mercury Tours").Link("sign-in").Click

Дополнительная литература: Общие сведения об объектной модели веб-теста в HP Unified Functional Testing (UFT) .

...