Неправильно выполняется цикл
В общем проблема такого рода: требуется, чтобы код после завершения цикла while отработал заново(но лучше бесконечно, пока сам не остановлю). Однако, при таком использовании кода выдает ошибку
Traceback (most recent call last):
File "D:\Users\Fourry\PycharmProjects\Selenium_Piton\Chrom\G2.py", line 33, in <module>
latest_price = get_started()
Сам код:
b = 26.0 # постоянная переменная
driver.get("https://") # не важный для кода переход на страницу
sleep(10) # спим(ждем)
def get_started(): # создаю функцию
driver.find_element("xpath", "/html/").click() # клик по ссылке нужный для меня (не обязательно, но он как раз таки срабатывает а дальше нет)
convert = driver.find_element("xpath","html/") # считывание строки
match = re.findall(r"(\d+)\s", convert.text) # выборка числа из строки
return float(match[0]) # выбор числа из скобок и вывод, для себя для проверки.
if get_started() >= b:
print(f"Текущиее значение: {get_started()}")
while True: # Запуск бесконечного цикла
latest_price = get_started() # Проверка появившегося числа
if latest_price < b: # Если a<b ожидаем завершения сценария ниже
driver.find_element("xpath", "/html/").click() # производим клик
print("Все Ок") # Вывод сообщения что все прошло удачно
latest_price = get_started() # Повторяем цикл
print("Конец")
Изменил код теперь проходит до if - того что после While и выдает ошибку.
while True:
b = 25.0
convert = driver.find_element("xpath",
"html")
match = re.findall(r"(\d+)\s", convert.text)
my_float = float(match[0])
a = my_float
if a < b:
driver.find_element("xpath",
"/html").click()
sleep(3)
print('Все ок')
print("Конец")
При таком коде он отрабатывает все как надо но один раз.
Ответы (1 шт):
Автор решения: fourry
→ Ссылка
Благодарю всех за помощь!!! С ответом на вопрос я справился!!! Все работает отлично, даже лучше чем предполагал.
Рабочий код:
def get_started():
convert = driver.find_element("xpath",
"html/")
match = re.findall(r"(\d+)\s", convert.text)
return float(match[0])
if __name__ == "__main__":
latest_price = get_started()
print(f"Текущее Число: {latest_price}")
while True:
b = 25.0
new_price = get_started()
if new_price < b:
driver.find_element("xpath", "/html/").click()
print("Прошло")
sleep(10)
print('Все ок')
driver.find_element("xpath",
"/html/").click()
sleep(5)
driver.find_element("xpath",
"/html/").click()