CSV, Selenium и Loop не могут идти вместе? Неправильный результат зацикливания после запуска блока кода селена - PullRequest
0 голосов
/ 17 июня 2019

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

У меня есть 2 блока кода: блок 1 для выполнения какой-либо функции в селене для входа на сайт (успешный вход в систему) и блок 2 для проверки наличия в списке product_id (который вызывается из файла csv) (также вызываемого из csv файл). Блок 1 и Блок 2 работают независимо друг от друга.

1: только строительный блок 2

Если я запускаю блок кода 2 отдельно без какого-либо кода, относящегося к селену (это означает, что я не перехожу через веб-браузер для входа на сайт), результат будет верным.

black_list=read_column(id_file,"black_list") #read_column is a function to call a list from a column in csv file
n=8
for i in range (1,n+1):
    check_id=read_cell(id_file,"ID",i) #read_cell is a function to call a cell value in csv file"       
    if check_id not in black_list:
        try:
            print("This id {} is not in the black list".format(product_id))
        except:
            pass
    else:
        print("This id  {} is in the black list".format(product_id))

и результат:

This id  1242118776 is in the black list
This id  1379832161 is in the black list
This id  2055592163 is in the black list
This id  1392978275 is in the black list
This id  1228468619 is in the black list
This id  1228492598 is in the black list
This id 1686996167 is not in the black list
This id 2012471495 is not in the black list
[Finished in 2.4s]

2: Строительный блок 1 и Блок вместе

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

А при интеграции блока кода, относящегося к селену, для входа на сайт:

def login_abc (username,password):
    try:
        url='my site url'
        browserdriver.get(url)
        time.sleep(1)

        submit=browserdriver.find_element_by_xpath("//*[@class='login-btn']/button[@type='submit']")
        submit.click()
        time.sleep(3)

    except NoSuchElementException:
        Print("failed to login")

#call login_abc function to login site abc
username="123"
password="456"
login_abc(username,password)
#looping to consider whether an id in the blacklist or not
black_list=read_column(id_file,"black_list") #read_column is a function to call a list from a column in csv file
n=8
for i in range (1,n+1):
    check_id=read_cell(id_file,"ID",i) #read_cell is a function to call a cell value in csv file"       
    if check_id not in black_list:
        try:
            print("This id {} is not in the black list".format(product_id))
        except:
            pass
    else:
        print("This id  {} is in the black list".format(product_id))

и результат:

This id  1242118776 is in the black list
This id  1379832161 is not in the black list
This id  2055592163 is not in the black list
This id  1392978275 is not in the black list
This id  1228468619 is not in the black list
This id  1228492598 is not in the black list
This id 1686996167 is not in the black list
This id 2012471495 is not in the black list

Как видите, результат верен только для первой строки, из второй строки цикла он неверен. Я не знаю, что не так с моим кодом результата. Пожалуйста, помогите мне в этом случае. Большое спасибо!

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