Я использую селен для циклического прохождения URL-адресов из текстового файла и получения определенного серийного номера, который указан в каждом URL-адресе.Затем я хочу сослаться на файл Excel, найти ячейку рядом с серийным номером и напечатать это значение.
Моя проблема заключается в том, что, когда я сохраняю серийный номер в переменной, он не работает в моем операторе if,Если я заменяю переменную на фактический серийный номер, она запускается как задумано.Почему хранимая переменная не работает в моем коде?
Вот мой предполагаемый код, где я не получаю вывод:
with open('Url.txt') as links:
for line in links:
time.sleep(3)
driver.get(line)
editpage = driver.find_elements_by_link_text('Edit this device')
for page in editpage:
time.sleep(1)
editurl = page.get_attribute('href')
driver.get(editurl)
Devicesn = driver.find_elements_by_id('device.name')
for sn in Devicesn:
serialnumber = sn.get_property('value')
wb = xlrd.open_workbook('C:\doc.xls')
for sheet in wb.sheets():
for row_num in range(sheet.nrows):
row_value = sheet.row_values(row_num)
if row_value[1] == serialnumber:
print(row_value[0])
Если я заменяю serialnumber номером, я получаюзначение ячейки, которое я ищу:
with open('Url.txt') as links:
for line in links:
time.sleep(3)
driver.get(line)
editpage = driver.find_elements_by_link_text('Edit this device')
for page in editpage:
time.sleep(1)
editurl = page.get_attribute('href')
driver.get(editurl)
Devicesn = driver.find_elements_by_id('device.name')
for sn in Devicesn:
serialnumber = sn.get_property('value')
wb = xlrd.open_workbook('C:\doc.xls')
for sheet in wb.sheets():
for row_num in range(sheet.nrows):
row_value = sheet.row_values(row_num)
if row_value[1] == 6216295237: #replaced serialnumber
print(row_value[0])
Это дает мне предполагаемое значение.Почему моя переменная серийного номера не работает здесь?Спасибо!
РЕДАКТИРОВАТЬ: Спасибо всем за ответы.Надеюсь, что в этом есть смысл. Я напечатал переменную serialnumber и ее длину.
serialnumber = sn.get_property('value')
wb = xlrd.open_workbook('C:\doc.xls')
for sheet in wb.sheets():
for row_num in range(sheet.nrows):
row_value = sheet.row_values(row_num)
print(serialnumber)
print(len(serialnumber))
time.sleep(60)
if row_value[1] == serialnumber:
print(row_value[0])
Вывод: 6216295237 10
VS
#serialnumber = sn.get_property('value')
wb = xlrd.open_workbook('C:\doc.xls')
for sheet in wb.sheets():
for row_num in range(sheet.nrows):
row_value = sheet.row_values(row_num)
if row_value[1] == 6216295237:
print(row_value[0])
Вывод: G47