How to extract element value using python and selenium

Viewed 50

Element: 1

<div id="contents" class="style-scope ytd-item-section-renderer"><ytd-comment-thread-renderer class="style-scope ytd-item-section-renderer"><!--css-build:shady-->
  <ytd-comment-renderer id="comment" class="style-scope ytd-comment-thread-renderer" comment-style="unknown" style="--ytd-comment-paid-background-color: initial;"><!--css-build:shady--><div id="paid-comment-background" class="style-scope ytd-comment-renderer"></div>
<div id="linked-comment-badge" class="style-scope ytd-comment-renderer" hidden=""></div>
<div id="body" class="style-scope ytd-comment-renderer">
  <div id="author-thumbnail" class="style-scope ytd-comment-renderer">
    <a class="yt-simple-endpoint style-scope ytd-comment-renderer" href="/channel/UCX6OQ3DkcsbYNE6H8uQQuVA">
      <yt-img-shadow fit="" height="40" width="40" class="style-scope ytd-comment-renderer no-transition" loaded="" style="background-color: transparent;"><!--css-build:shady--><img id="img" draggable="false" class="style-scope yt-img-shadow" alt="MrBeast" height="40" width="40" src="https://yt3.ggpht.com/ytc/AMLnZu_NBXmT9J0H9uL94tZm6YxOGdMn0utqYJh1aQlv4A=s88-c-k-c0x00ffffff-no-rj"></yt-img-shadow>
    </a>
  </div>

For above element if I use the below code in selenium I get the correct result:

comm_thumbNail = wd.find_elements_by_xpath('//*[@id="contents"]/ytd-comment-thread-renderer//*[@id="author-thumbnail"]//*[@id="img"]') 

Later I retrieve each value using get_attribute("src").

But the same I am unable to retrieve if I use below code:

comm_thumbNail = wait.until(EC.visibility_of_all_elements_located((By.XPATH,
            '//*[@id="contents"]/ytd-comment-thread-renderer//*[@id="author-thumbnail"]//*[@id="img"]')))

I have set wait as 15 ,still I get the timeout exception as :

'//*[@id="contents"]/ytd-comment-thread-renderer//*[@id="author-thumbnail"]//*[@id="img"]')))
  File "/Users/n/.conda/envs/YT_Video_Scraper/lib/python3.6/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

Could anyone please let me know what I am missing here ? Thank You.

0 Answers
Related