Скрипт QTP - Нажмите на ячейку WebTable - Работает в IE, но не в Chrome - PullRequest
0 голосов
/ 25 июня 2018

Написание сценария автоматизации для веб-приложения, есть таблица,

После внесения изменений пользователю необходимо щелкнуть ячейку, чтобы включить ее.

  1. Перед тем, как пользователь нажметни в одной ячейке нет обнаруженных дочерних элементов (попробуйте с подсчетом дочерних элементов с помощью micclass - webEdit, webList, webElement - All возвращают 0)

  2. После того, как пользователь щелкнет ячейку, ячейка изменитсяв редактируемое поле - webedit / weblist - здесь childitemcount становится 1

  3. Следовательно, щелчок по ячейке становится основным процессом (открыт для предложения, если есть обходной путь)

В данный момент я нажимаю на ячейку, ввод, затем нажимаю на следующую ячейку и повторяю снова.Вот фрагмент моего кода.Object.rows(row).cells(i).click не работает в Chrome, но IE работает правильно без каких-либо проблем.

Попытка:

  • Выделите таблицу - Этопоказ правильной таблицы

  • Печать row, i после подсвечивания таблицы

    • IE - будет 1,0;1,1;1,2 и т. Д.

    • Chrome - на первом шаге произошла ошибка, ошибка = общая ошибка выполнения

  • Измените значение строки, чтобы я был +1 оба (все еще не работает)

Код:

row = 1  
rows = dictObject("WEBTBL_ACCDTL_FLOWTBL").GetROProperty("rows")
Arry_userInput = split(userinput,";")

'rows - 1 because of the header
If row <= rows-1 Then
    For i = 0 To Ubound(Arry_userInput) Step 1
        dictObject("WEBTBL_ACCDTL_FLOWTBL").highlight
        dictObject("WEBTBL_ACCDTL_FLOWTBL").Object.rows(row).cells(i).click 'Here Working in IE but not Chrome
        set currTxtBox = dictObject("WEBTBL_ACCDTL_FLOWTBL").ChildItem(row+1,i+1,"WebEdit",0)
        currTxtBox.Object.focus
        currTxtBox.Object.scrollIntoView    

        If i = 0 or i = 1 or i = 2 or i = 3 or i = 7 Then
            Call table_dropdown_set(currTxtBox,Arry_userInput(i))
        Else
            Call table_txtbox_set(currTxtBox,Arry_userInput(i))
        End If

        wait 1
    Next
    wait 1
    Msgbox "Input Process Done!"
Else 
    Msgbox "Please Trigger the button to add new row!"
End If

1 Ответ

0 голосов
/ 25 июня 2018

Я вижу, что вы используете .Object для доступа к ячейке, делая это, вы не используете все возможности UFT. Вы пытались использовать свойство Cell? Это было добавлено в последней версии UFT, поэтому вам следует проверить, доступна ли она в используемой вами версии.

Использование:

Browser("B").Page("P").WebTable("WT").Cell(row, column).Click

В отличие от ChildItem функции WebTable Cell возвращает элемент самой ячейки, а не содержимое ячейки, которое, как мне кажется, вам действительно нужно.

...