Мой код принимает пользовательский ввод и использует его для поиска элемента на веб-странице. он очищает HTML-код веб-страницы, чтобы получить элементы, появившиеся в результате:
driver = webdriver.Chrome()
driver.get(urlItem)
#this last line is the one that's not working on heroku
item_list = driver.find_elements_by_class_name('price-history-link')
это HTML-код:
<ul class="no-padding small-block-grid-3 large-block-grid-5 text-center word-wrap-break-word">
<li>
<a href="/item/7399/"><img src="/assets/imgs/items/7399.gif" alt="A Grey Faerie Doll" title="A Grey Faerie Doll" class="item-result-image"></a><br><a href="/item/7399/">A Grey Faerie Doll</a>
<br><span class="text-small"><a href="/item/7399/price-history/" class="price-history-link" title="October 31, 2019">2,400,000 NP</a></span>
</li>
</ul>
Когда я запускаю код локальнобот работает отлично. Когда я запускаю точно такой же код с моего хостинг-сайта (heroku), он не возвращает никаких элементов. Я подумал, что это может быть проблема с загрузкой, поэтому я добавил:
WebDriverWait(driver, 10).until(ec.visibility_of_element_located((By.CLASS_NAME, "price-history-link")))
, когда этот код на месте, он возвращает исключение (только при запуске на хостинг-сайте, он отлично работает при запуске намой компьютер)
повысить TimeoutException (message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Сообщение:
да, исключение заканчивается там, на самом деле это не такПокажите мне сообщение.
Я действительно не понимаю, почему это не сработает на heroku ... любая помощь очень ценится!
Редактировать: Добавить в ловушку для NoSuchElementException, но он не поймалчто-нибудь