Ваш код выглядит почти правильно, однако есть несколько моментов, на которые стоит обратить внимание, чтобы решить проблему бесконечного ожидания при использовании Selenium.
1. **Корректный CSS селектор**: В вашем коде используется селектор `product-slider__img js-product-current-img`, который является строкой. Он должен быть заключён в кавычки (например, в одинарные) и передан как список, поскольку тип `By.CSS_SELECTOR` ожидает наличие селектора как строки, а не как список классов. Верный код будет выглядеть так:
```python
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
)
```
2. **Проверка наличия элемента**: Если элемент, который вы пытаетесь найти, не загружается, процесс может зависнуть. Попробуйте изменить `presence_of_element_located` на `visibility_of_element_located`, чтобы удостовериться, что элемент действительно видим на странице.
3. **Увеличьте таймаут**: Возможно, стороницу действительно загружается дольше, чем вы ожидали. Попробуйте увеличить время ожидания до 30 или 60 секунд.
4. **Обработка исключений**: Добавьте обработку исключений, чтобы вы могли увидеть ошибки, если они произойдут.
5. **Избежание ожидания на сложных страницах**: На некоторых сложных веб-страницах (например, с динамическим контентом) могут быть проблемы с ожиданием. Можно использовать альтернативные подходы, такие как `time.sleep()` для синхронизации, чтобы увидеть загруженное содержимое.
Вот исправленный код с учётом вышеизложенного:
```python
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
firefox_options = Options()
firefox_options.binary = r'C:\\Program Files\\Mozilla Firefox\\firefox.exe'
service = Service('D:\\Code\\Python\\FireFox_Driver\\geckodriver.exe')
driver = webdriver.Firefox(service=service, options=firefox_options)
url1 = 'https://superstep.ru/product/NCFSW0W288YW_GRA/#colorGRA'
driver.get(url1)
try:
# Увеличиваем таймаут ожидания
element = WebDriverWait(driver, 30).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
)
page_html = driver.page_source
except Exception as e:
print(f"Произошла ошибка: {e}")
finally:
driver.quit()
print(page_html)
```
Если всё равно происходит зависание, вы можете попробовать использовать метод `execute_script` для принудительного ожидания или динамической подгрузки определённых элементов. Например:
```python
driver.execute_script("return document.readyState") == "complete"
```
Попробуйте эти изменения, и это должно помочь решить проблему.