#python #loops #if-statement #tkinter #listbox
#python #циклы #if-оператор #tkinter #список
Вопрос:
У меня есть программа, которая использует selenium. В этой программе у меня есть графический интерфейс tkinter с Listbox
.
Поле списка, которое можно заполнить именами, введя имя в поле ввода и добавив его с помощью кнопки.
После того, как я заполнил свой список, я хочу просмотреть каждое имя и выполнить цикл поиска.
Это мой код на данный момент (попытался упростить его для этого примера):
def loop_player_listbox():
global bol_loop
bol_loop = True
if bol_loop is True:
time.sleep(1)
str_libo = listbox.get(0, tk.END)
for i in str_libo:
text_playername = wait.until(EC.element_to_be_clickable((By.XPATH,('/html/body/main/section/section/div[2]/div/div[2]/div/div[1]/div[1]/div[1]/div/input'))))
text_playername.clear()
text_playername.click()
text_playername.send_keys(i)
try:
choose_player = wait.until(EC.element_to_be_clickable((By.XPATH,("//span[@class='btn-text' and contains(text(),'" i "')]"))))
choose_player.click()
except:
print('Player not found!')
example()
В этом примере я хочу просмотреть каждый элемент в списке, выполнить поиск по имени в URL-адресе и щелкнуть по нему, если имя было найдено и появилось в определенном xpath.
После этого, и это то, что я не могу сделать правильно, я хочу выполнить функцию в цикле. Функция должна выполнить цикл 5 раз, а затем она должна перейти к следующему na, e в моем списке и сделать то же самое (так что на самом деле для всех имен в моем поле она должна выполнить это 5 раз)
Это цикл, который необходимо выполнить:
def example(int_user_input_max_price, int_choose_speed): # buy only routine
# start buy only mode
global start_process, exit_tool
exit_tool = False
start_process = True
if start_process is True:
time.sleep(1)
btn_search = driver.find_element_by_xpath('/html/body/main/section/section/div[2]/div/div[2]/div/div[2]/button[2]')
# set max price
ipt_max_price = driver.find_element_by_xpath(
ipt_max_price.click()
time.sleep(1)
ipt_max_price.send_keys(int_user_input_max_price)
time.sleep(1)
# Set min price
int_min_price = 150
# Set max players bought
int_max_players_bought = 100
int_players_bought = 0
# Buy until 100 players were bought
while int_players_bought < int_max_players_bought:
else:
Я не вдаюсь в смысл всего моего кода, мне просто нужно знать, как я мог бы сделать так, чтобы это example()
выполнялось 5 раз, а затем вернуться к следующему элементу в моем списке?
Если потребуется какая-либо дополнительная информация, пожалуйста, дайте мне знать.
РЕДАКТИРОВАТЬ 1:
У меня есть список футболистов. И с помощью моего кода я автоматизирую веб-приложение игры Fifa.
Моя программа ищет игрока по имени из списка и пытается купить его на трансферном рынке ( example()
).
Я хочу сделать возможным, чтобы пользователь мог добавить несколько имен в список и позволить программе перебирать все элементы в списке. Он должен выполнить example()
x раз, а затем вернуться и сделать то же самое для следующего элемента в списке.
Я думал, поможет ли счетчик, чтобы он выводил значение = 1 после каждого цикла example()
. Но я не могу собрать код вместе.
Комментарии:
1. Могли бы также включить в резюме то, чего вы хотели бы достичь?
2. добавлено краткое изложение того, что он должен делать;-)
3. Приведенный ниже ответ не помогает?
4. Нет, потому что он должен был учитывать многие аспекты. Но теперь я понял это. Я проделал значительную работу по переписыванию своего кода. Ты все еще