Новичок в селене и питоне, не могу понять, как вызвать элемент из списка - PullRequest
0 голосов
/ 15 апреля 2019

Я новичок в использовании Python и работе с тестированием автоматизации Selenium.

Я пытаюсь получить список пунктов меню, которые отображают подпункты только при наведении курсора.

Я дошел до того, что использовал отладчик PyCharm, и вижу, что список разбит на элементы. Но когда я пытаюсь вызвать тот, который соответствует названию элемента, над которым я хочу навести курсор, это выдает ошибку об индексах списка, которые не могут быть стр.

Я пробовал несколько вещей, чтобы преобразовать список в строки, используя код "for", но я ничего не получаю, как мне кажется.

   def test_confirm_claim_default_search(self):
        driver = self.driver
        claims_page = MemberDataPage(driver)
        nav_elements = claims_page.nav_elements
        form_elements = claims_page.form_elements
        html_elements = claims_page.html_elements
        claim_numbers = config['claims']['claim_numbers']
        claim_menu = config['claims']['menu']

        self.log_in()
        claims_page.wait_until_not_clickable(form_elements["page_loading"])
        menu_item = claims_page.get_element_text(nav_elements["menu_template_update"]).split('\n')
        for program in menu_item:
            self.append(program, 0)
        claims_page.hover_element(menu_item[claim_menu])
        claims_page.click_button(nav_elements["claim_service_link"])
        claims_page.wait_until_not_clickable(form_elements["page_loading"])
        results = claims_page.get_element_text(form_elements["claim_results"])
        claim_numbers = claim_numbers.split(',')
        for claim in claim_numbers:
            self.assertIn(claim, results)

Traceback:

"C:\Users\Ryan\Documents\QA-Automation\hx-automation\services\member_ds2\claims.py", line 21, in test_confirm_claim_default_search claims_page.hover_element(menu_item[claim_menu]) TypeError: list indices must be integers, not unicode

1 Ответ

0 голосов
/ 16 апреля 2019

Ошибка говорит вам, что вы пытаетесь проиндексировать список с бессмысленным значением Юникода, таким как '\u0394'.Таким образом, в основном у компьютера есть список некоторых элементов (скажем, [0, 1, 2, 3, 4, 5, 6, 7]), и вы просите его найти '\u0394' номерный элемент в списке, что очень смущает его.Я не совсем уверен, какова ваша цель с этим кодом, но я думаю, что пара стратегических print() операторов может помочь вам разобраться с этим.Я бы начал с замены строки:

claims_page.hover_element(menu_item[claim_menu])

на

print(claim_menu)
claims_page.hover_element(menu_item[claim_menu]) # this is the same

Это даст вам вывод на ваш терминал, показывающий, что claim_menu прямо перед тем, как вы попытаетесь использовать его какиндекс, который должен помочь объяснить, почему это происходит.Для индексации в списке необходимо указать целое число (начиная с 0-го элемента).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...