【发布时间】:2021-09-16 21:55:39
【问题描述】:
curr = conn.cursor()
sql = """ select order# from Orders WHERE STATUS <> 'Shipped' and STATUS <> 'Not Found' and order# > '' """
curr.execute(sql)
row: List[Any] = curr.fetchall()
for x in row:
searchInput = x
serchinput_textbox = driver.find_element_by_id("searchInput")
serchinput_textbox.send_keys(searchInput)
searchbutton = driver.find_element_by_id("searchButton")
searchbutton.click()
当我打印该行时,所有记录都在那里,但在 for 循环中它只使用最后一条记录。我不确定我是否正确创建了列表。
【问题讨论】:
-
我不明白你为什么要尝试创建
searchInput,而不是仅仅使用row?而且我也不明白(请原谅我的无知)为什么你认为searchInput应该不同于row的最后一个x。 -
searchInput 是网站上标签的名称。我正在输入行中的信息以通过 searchInput 调用新页面。 for x in row: searchInput = x serchinput_textbox = driver.find_element_by_id("searchInput") 不管 x 正在寻找什么,这是一个网页,当您使用 For 循环时,x 不应该从行中的第一个元素开始吗?我认为这就是 For 循环所做的,从开头开始循环直到它到达结尾。
-
是的,它将
searchInput变量设置为row中的第一个x,然后设置为第二个,...,然后设置为最后一个。 然后它使用最后一个继续代码并调用driver.find_element_by_id等。 -
谢谢,但我还是有点困惑。如果我执行“print(x)”,它会打印所有这些。有没有办法让它一次处理一个记录,而不仅仅是处理最后一个?
-
是的,将您希望为每个 x inside 循环执行的代码移动。