this is my code:
JavaScript
x
15
15
1
from selenium import webdriver
2
from selenium.webdriver.common.by import By
3
from selenium.webdriver.chrome.service import Service
4
5
service = Service("C:Developmentchromedriver.exe")
6
driver = webdriver.Chrome(service=service)
7
8
driver.get(
9
"https://www.amazon.com/HB-UM43-%D7%A8%D7%9B%D7%96%D7%AA-Sabrent-USB-3-0/dp/B00JX1ZS5O/ref=d_ex_efse_dp_ps_d_sccl_2_13/134-8388945-8876241?pd_rd_w=PhytY&content-id=amzn1.sym.a33bdad7-13b2-4641-a8b3-d6f6ef5a7304&pf_rd_p=a33bdad7-13b2-4641-a8b3-d6f6ef5a7304&pf_rd_r=7R3T4DW86KG7CHFAJHJH&pd_rd_wg=fWhFq&pd_rd_r=5bc9d4df-38d2-4d93-aaee-c6e8e63dcbf4&pd_rd_i=B00JX1ZS5O&th=1")
10
11
price = driver.find_element(By.CLASS_NAME, "a-offscreen")
12
print(price.get_attribute('innerHTML'))
13
14
driver.quit()
15
my results:
JavaScript
1
2
1
<span dir="rtl">$</span>•16.98•
2
site element:
JavaScript
1
2
1
<span class="a-offscreen"><span dir="rtl">$</span>•16.98•</span>
2
I want to get only the number “16.98”, instead im getting the whole element. When im trying to write “.text” it returns “none”.
Advertisement
Answer
Instead .text
use get_attribute('textContent')
the element might be hidden on the page.
JavaScript
1
3
1
price = driver.find_element(By.CLASS_NAME, "a-offscreen")
2
print(price.get_attribute('textContent'))
3
This should return $16.98
to get the 16.98
use string manipulation like
JavaScript
1
2
1
print(price.get_attribute('textContent')[1:]) #this will remove `$`
2