за код спасибо
добвьте код чтоб делал скриншот когда не находит если вы запускаете его headless
если видимым запускаете
просто найдите $('#placeholder-area') через консоль есть оно там
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
driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
finally:
driver.quit()
или
element = wait.until(EC.element_to_be_clickable((By.ID, 'someid')))
id = "ferstHeading" # "firstHeading"
element = WebDriverWait(driver,10).until(
expected_conditions.presence_of_element_located((
By.ID, "ferstHeading")), 'element with id {} is not found'.format('ferstHeading'))
print( 'Found element "{}"'.format(element.get_attribute('outerHTML')))
и до него дошло
то напечатает либо
Found element "<h1 id="firstHeading" class="firstHeading">Main Page</h1>"
либо
traceback (most recent call last):
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException:
Message: element with id ferstHeading is not found
сергей кузьмин, сам разобрался. Оказалось проблема была в скроле. Видимо ютуб не рендерит объекты пока на них не посмотришь. А так как на другом компьютере монитор меньше при заходе на ролик окно с комментариями не рендорилось. Помогло: driver.execute_script("window.scrollTo(2, 500)")