Rilyz X
Ученик
(207)
2 года назад
Смотря какой код и какую ошибку выдаёт
Rilyz XУченик (207)
2 года назад
скорее всего, это произошло из-за того, что WebDriver не смог найти элемент на странице с указанными параметрами в течение указанного времени (10 секунд в данном случае). Это может быть связано с тем, что элемент не загрузился на странице, если айди уж точно правильно указан
Rilyz XУченик (207)
2 года назад
для решения этой проблемы можно попробовать увеличить время ожидания элемента с помощью метода WebDriverWait. Также стоит убедиться, что страница, на которой ищется элемент, действительно загрузилась перед выполнением поиска
alpenzwer
Мастер
(1160)
2 года назад
Чтобы исправить ошибку в коде Python, необходимо понять, какая именно ошибка возникла. Обычно Python выводит сообщение об ошибке, которое указывает на строку, на которой произошла ошибка, а также на тип ошибки.
Например, если в коде есть синтаксическая ошибка (неправильно расставлены скобки, отсутствует двоеточие и т.д.), Python выдаст сообщение об ошибке с указанием строки, где произошла ошибка, и с сообщением "SyntaxError".
Если же ошибка связана с типами данных, например, вы пытаетесь произвести операцию над строкой, которая должна быть числом, то Python выдаст сообщение об ошибке с указанием строки и типом ошибки, например, "TypeError".
Чтобы исправить ошибку, нужно проанализировать сообщение об ошибке и найти место, где она произошла. После этого можно приступить к исправлению ошибки.
Например, если вы получили сообщение об ошибке "SyntaxError: invalid syntax" и строка, на которой произошла ошибка, содержит неправильно расставленные скобки, то нужно исправить расстановку скобок.
Если же ошибка связана с типами данных, то нужно убедиться, что переменные имеют правильный тип данных и что операции над ними производятся правильно.
В целом, чтобы более точно ответить на вопрос, необходимо увидеть код и сообщение об ошибке.
ПророкЗнаток (341)
2 года назад
Не успел отредактировать, не публиковалось длинное сообщение
ПророкЗнаток (341)
2 года назад
Спасибо. Сейчас попробую. Хотя задержка стоит - WebDriverWait(driver, 10
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
# Исходные данные, которые нужно сравнить с данными на сайте
target_data = [1, 2, 3, 4, 5]
# Инициализация драйвера браузера
driver = webdriver.Chrome()
# Открытие страницы
driver.get("https://www.stoloto.ru/ruslotto/game/?int=right")
# Ожидание элемента, который содержит данные на странице
data_element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "tickets"))
)
while True:
# Получение текущих данных на странице
current_data = [int(x) for x in data_element.text.split(",")]
if current_data == target_data:
# Если данные на странице совпадают с исходными данными, останавливаем выполнение программы
break
else:
# Если данные на странице не совпадают с исходными данными, обновляем страницу
refresh_button = driver.find_element_by_id("refresh_button")
refresh_button.click()
# Ожидание, пока данные на странице обновятся
data_element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "tickets"))
)
# Закрытие браузера
driver.quit()
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3.5\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3.5\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "F:/Работа 2/Новая папка/exl_file.py", line 92, in <module>
EC.presence_of_element_located((By.ID, "tickets"))
File "C:\Users\sergey.shevtsov\PycharmProjects\TeleBot\venv\lib\site-packages\selenium\webdriver\support\wait.py", line 95, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: