Использование цикла while для динамической таблицы - PullRequest
0 голосов
/ 25 июня 2019

У меня есть динамическая таблица, которая отображает 5 строк одновременно, начиная с 1 до 5. Если вы хотите взглянуть на, скажем, строку 6, вы должны нажать следующую кнопку.Как только вы щелкаете по ней, хотя таблица обновляет 5 строк и показывает строки с 6 по 10.

Я пытаюсь написать сценарий, который просматривает определенный столбец в таблице.Он находит все идентификационные номера в каждой строке этого столбца.Затем он выглядит в текстовом файле в том же каталоге.Если идентификационный номер / номера совпадают с номерами в текстовом файле, будет нажата галочка, соответствующая идентификационному номеру.

Из-за дизайна веб-сайтов я должен создать цикл, который говорит: «Если идентификационный номер есть на этой странице, отметьте его. Если это не так, нажмите следующую кнопку и проверьте на следующей странице,и так далее. "

i = 1
while i < 6:
    ID = browser.find_element_by_xpath(before_xpath + str(i) + after_xpath).get_attribute('innerHTML')

    if ID in open('ID_NUMBERS.txt').read():
        tick = browser.find_element_by_xpath(before_tick + str(i) + after_tick)
        tick.click()
        i += 1
        break
    if ID not in open('ID_NUMBERS.txt').read():
        next_page = browser.find_element_by_xpath(skip_page)
        next_page.click()
        time.sleep(20)
        i += 1
        continue

Я запускал это несколько раз.Я на самом деле получил результат, который был после, но по какой-то причине он сейчас не работает.В данный момент он нажимает следующую кнопку 5 раз, прежде чем перейти к следующей части кода.Он пропускает идентификационный номер, который находится в текстовом файле, когда он должен быть установлен в поле для галочки.

1 Ответ

0 голосов
/ 26 июня 2019

Я решил проблему.Единственная проблема, с которой я сталкиваюсь сейчас, заключается в том, что код реализован довольно медленно (в случае time.sleep (#) в коде. Сейчас я пытаюсь выяснить, как их удалить и использовать вместо этого webdriverwait.

i = 1

while i < 6:
    time.sleep(4)
    refID = browser.find_element_by_xpath(before_xpath + str(i) + after_xpath).get_attribute('innerHTML')
    if str(refID) in open('ID NUMBERS.txt').read():
        tick = browser.find_element_by_xpath(before_tick + str(i) + after_tick)
        tick.click()
        break
    time.sleep(4)
    i += 1
    time.sleep(4)

    if i == 5:
        refID = browser.find_element_by_xpath(before_xpath + str(i) + after_xpath).get_attribute('innerHTML')
        time.sleep(4)
        if str(refID) in open('ID NUMBERS.txt').read():
            tick = browser.find_element_by_xpath(before_tick + str(i) + after_tick)
            tick.click()
            break
        time.sleep(4)
        i = 1
        next_page = browser.find_element_by_xpath(skip_page)
        next_page.click()
        time.sleep(4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...