Как я могу нажать на ссылку, которая доступна в веб-таблице?
Я пытаюсь нажать на ссылку, но я не могу сделать это из-за 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 ответа
WebTable
не должно мешать идентификации ссылки каким-либо образом, что заставляет вас думать, что это делает? В UFT вы можете опустить промежуточные уровни в иерархии DOM.
Из скриншота видно, что Link
объект уже находится в хранилище объектов, попробуйте щелкнуть по нему простым способом.
Browser("Register: Mercury Tours").Page("Register: Mercury Tours").Link("sign-in").Click
Дополнительная информация: Общие сведения об объектной модели веб-теста в HP Unified Functional Testing (UFT).
Вы можете использовать эту функцию, которую я создал некоторое время назад, она очень динамична, поэтому она принимает любые значения, которые присутствуют
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- значение класса объекта webtable
Elementinnertext_To_Click- внутренний текст веб-элемента, который вы хотите щелкнуть из объекта веб-таблицы.