我使用selenium从一个txt文件中循环访问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,我会得到我要查找的单元格值:

^{pr2}$

这给了我我想要的价值。为什么serialnumber变量在这里不起作用?谢谢!在

编辑:感谢大家的回复。为了使这更有意义,我打印了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个

与#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

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐