Зацикливание функции send_keys (), вызывающее ошибку объекта NoneType - PullRequest
0 голосов
/ 18 июня 2020

У меня есть кортеж (имена), в котором есть 2 списка. list1 содержит фамилии, list2 содержит имена. Я пытаюсь l oop через каждый список и отправить имя и фамилию в 2 поля текстовых полей на веб-сайте. В первый раз, когда l oop запускается, все работает отлично, но во второй раз я получаю сообщение об ошибке Exception has occurred: TypeError 'NoneType' object is not subscriptable Я предполагаю, что send_keys() возвращает значение none и каким-то образом напортачивает.

Вот мой код для создания списков и кортежей. Информация считывается с листа Excel.

def get_names(book):
f_names = []
l_names = []
workbook = xlrd.open_workbook(book)
worksheet = workbook.sheet_by_index(0)

for y in range(1, worksheet.nrows):
    l_names.append(worksheet.cell_value(y, 0))  
    f_names.append(worksheet.cell_value(y, 1))

return (l_names, f_names)` 

В моей основной программе у меня работает следующий l oop:

   import xlrd
   from selenium import webdriver

   url = 'https://website.com'
   driver = webdriver.Chrome('/usr/local/bin/chromedriver')
   driver.get(url)

   for i in range(len(names[0])):
      lName = driver.find_element_by_id('id_last_name')
      lName.send_keys(names[0][i])
      fName = driver.find_element_by_id('id_first_name')
      fName.send_keys(names[1][I])

      search_button = driver.find_element_by_xpath('//*[@id="table-responsive"]/table/tbody/tr[1]/td/div/table[2]/tbody/tr/td/table/tbody/tr[5]/td/table/tbody/tr[4]/td/table/tbody/tr[2]/td[2]/input').click()

Один раз send_keys() вводит имя в поле. программа должна начать сначала и ввести следующее имя в списке. Может кто-нибудь сказать мне, как это исправить, или как это лучше сделать?

1 Ответ

0 голосов
/ 18 июня 2020

Попробуйте инициализировать:

   for i in range(len(names[0])):
    lName, fname = "",""

    lName = driver.find_element_by_id('id_last_name')
    lName.send_keys(names[0][i])
    fName = driver.find_element_by_id('id_first_name')
    fName.send_keys(names[1][i])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...