i'm trying to manipulate text from all spans under "critical-product-marquee-container" div using python, selenium and xpath selector.
<div data-v-936e71a8="" class="critical-product-marquee-container">
<div data-v-936e71a8="" class="marquee-text-wrap">
<div data-v-936e71a8="" class="marquee-text-content">
<div data-v-936e71a8="" class="marquee-text-text"
style="animation-duration: 40s;">
<span data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Surgical & Reusable
Masks:</span><span data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 1,215,028,138 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Surface Wipes:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 56,023,303 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Gowns and Coveralls:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 22,899,306 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Respirators:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 11,732,566 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Face Shields:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 4,731,581 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Hand Sanitizer:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 527,672 L </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Surface Solutions:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 48,337 L </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Ventilators:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 500 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Thermometers:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 6,922 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Testing Kits:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 22,205 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Disposable Gloves:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 137,455,881 units </span></span></span>
</div>
<div data-v-936e71a8="" class="marquee-text-text"
style="animation-duration: 40s;">
<span data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Surgical & Reusable
Masks:</span><span data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 1,215,028,138 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Surface Wipes:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 56,023,303 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Gowns and Coveralls:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 22,899,306 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Respirators:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 11,732,566 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Face Shields:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 4,731,581 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Hand Sanitizer:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 527,672 L </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Surface Solutions:</span><span
data-v-936e71a8="" class="line-item-bold available"
style="padding-right: 2em;"> 48,337 L </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Ventilators:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 500 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Thermometers:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 6,922 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Testing Kits:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 22,205 units </span></span></span><span
data-v-936e71a8=""><span data-v-936e71a8=""><span
data-v-936e71a8="" class="bold">Disposable Gloves:</span><span
data-v-936e71a8="" class="line-item-bold critical"
style="padding-right: 2em;"> 137,455,881 units </span></span></span>
</div>
</div>
</div>
</div>
my code is as follows:
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
options = webdriver.ChromeOptions();
options.add_argument('headless');
driver = webdriver.Chrome(options=options)
url = 'https://www.rrpcanada.org/#/' # site I'm scraping
driver.get(url)
item_elements = WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located((By.XPATH, '//div[@class="critical-product-marquee-container"]//span[@class="bold"]')))
quantity_elements = WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located((By.XPATH, '//div[@class="critical-product-marquee-container"]//span[contains(@class, "line-item-bold")]')))
it returns a lost of all span elements but when trying to print the span text it prints the first two spans only, the rest are empty. any advice?
'//div[@class="critical-product-marquee-container"]//span[contains(@class, "line-item-bold")]will returns 3spanelements. Is that correct?