Попытка отправить один элемент списка через поиск одновременно - PullRequest
1 голос
/ 22 февраля 2020

Итак, у меня есть текстовый файл номеров маршрутизации, который мне нужно проверить, но я не хочу делать это вручную. Прямо сейчас, у меня есть GUI, в который я вводю каждый из них (вот почему этот код находится там), но план состоит в том, чтобы превратить текстовый файл в список, а затем моя программа ищет каждый из них. , Я не могу отправить их все сразу, так как мне нужно обновлять браузер sh между каждым поиском (или очищать панель поиска). Используя этот код, я превратил текстовый файл в список:


with open('C:/users/ME/desktop/routingnumbers') as f:
    lines = f.read().splitlines()

Как мне заставить мою программу посылать каждый элемент списка по одному, а затем начинать заново? Это моя текущая программа.


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
import time
from tkinter import *

window = Tk()
window.title("Routing Number Lookup")
window.configure(background="light grey")
window.geometry('300x250')

Routing = Label(window, text="Routing Number: ", font=("Arial"), fg="gray17")
Routing.grid(column=0, row=0, sticky='e')
Routing.configure(background="light grey")
RoutingEntry = Entry(window, width=20)
RoutingEntry.configure(background="light grey")
RoutingEntry.grid(column=1, row=0)

driver = webdriver.Chrome()
driver.get('http://www.routingnumber.com/')

def RoutingSearch():

    SearchBar = driver.find_element_by_xpath("/html/body/div[1]/form[1]/div[1]/input[1]")

    RoutingInput = (RoutingEntry.get())
    SearchBar.send_keys(RoutingInput)
    SearchBar.send_keys(Keys.ENTER)
    time.sleep(0.5)
    ValidRouting = driver.find_element_by_xpath("/html/body/div[1]/form[1]/div[1]/div/div[1]").text
    BankName = driver.find_element_by_xpath("/html/body/div[1]/form[1]/div[1]/div/table[1]/tbody/tr[1]/td[2]/a").text
    print("\n")
    print(ValidRouting, BankName)

    driver.refresh()

SearchButton = Button(window, text="Search", command=RoutingSearch)
SearchButton.grid(column=1, row=3)
SearchButton.configure(background = "light grey")

window.mainloop()

1 Ответ

1 голос
/ 22 февраля 2020

Если вам просто нужно проверить номер маршрута, используйте следующее:

def validate_routing(rn):
  if len(rn) != 9:
    return False

  n = 0
  for i in range(0, len(rn), 3):
    n += int(rn[i]) * 3
    n += int(rn[i + 1]) * 7
    n += int(rn[i + 2])

  return n != 0 and n % 10 == 0

with open('routing.txt') as f:
    for rn in f:
      rn = rn.rstrip()
      print(rn, validate_routing(rn))

Python Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...