下面的脚本读取excel工作表并在页面上查找订单号;找到一个后,脚本将输入相应的跟踪号,返回到第一页(与最初搜索的页面相同)并继续查找订单号。你知道吗
有人能告诉我为什么下面的脚本在返回到那个页面时会慢很多吗?例如:脚本将非常好地工作,搜索大约5个订单号一秒钟,输入跟踪号码,并提交它非常快。你知道吗
当脚本返回到包含未发货订单的页面时,搜索更多订单需要很长时间(可能每分钟1个)
“Not ups Tracking”和“Fedex”else功能在完成后不会变慢(这些是手动输入的,然后按enter“手动重新启动”脚本)
脚本如下所示:
list_of_files = glob.glob('F:/TrackingBot/GC/updater/*') # * means all if need specific format then *.csv
latest_file = max(list_of_files, key=os.path.getctime)
wb = xlrd.open_workbook(latest_file)
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
for i in range(sheet.nrows):
cell = sheet.cell(i, 3)
cty = cell.ctype
if cty == xlrd.XL_CELL_EMPTY:
continue
else:
po = (sheet.cell_value(i, 3))
tracking = (sheet.cell_value(i, 10))
wayfair = "CS"
wayfsubstring = wayfair in po
if wayfsubstring == True:
continue
print("SEARCHING FOR: ", po)
if driver.find_elements_by_link_text(po):
print("FOUND!!!!", po, tracking)
driver.find_element_by_link_text(po).click()
ups = "1Z"
isSubstring = ups in tracking
if isSubstring == True:
cprint('UPS TRACKING NUMBER', 'green')
driver.implicitly_wait(25)
confirm = driver.find_element_by_link_text("""Confirm shipment""")
confirm.click()
time.sleep(1)
trackingnum = driver.find_element_by_xpath("""//input[contains(@data-test-id,
'text-input-tracking-id')]""")
trackingnum.click()
trackingnum.send_keys(tracking)
driver.find_element_by_xpath("""(//input[@value='Confirm shipment'])[2]""").click()
time.sleep(3)
driver.refresh()
time.sleep(4)
continue
else:
cprint("NOT UPS TRACKING", "red")
period = "."
isSubstring2 = period in tracking
if isSubstring2 == True:
cprint('NJ SENT TRACKING NUMBER', 'yellow')
input("Type to GO")
driver.refresh()
time.sleep(4)
continue
else:
cprint('FEDEX FREIGHT TRACKING NUMBER', 'green')
input("Type to GO")
driver.refresh()
time.sleep(4)
continue
上面的代码是针对Amazon的
任何建议都将不胜感激!你知道吗
我终于明白了问题所在,那是由于一次含蓄的等待。你知道吗
下面的代码片段显示了我最初设置等待的位置。你知道吗
问题是驱动程序在返回循环时保留了等待时间,因此当线程返回时:
它最多等待了25秒,然后进入excel表中的下一个订单号。我通过在循环搜索另一个订单号之前调用另一个隐式等待来修复这个问题。这样,循环中稍后需要的等待不会影响搜索,如下所示:
相关问题 更多 >
编程相关推荐