Below is the part where my code program meets a runtime ValueError.
while real_original_amount > 1: future_amount=driver.find_element_by_xpath('//[@id="app"]/div[1]/div[2]/div[1]/div/div[3]/div[2]/div[3]/div/div/span/span') future_amount_float = float(future_amount.text) betting_count = ()
As I’m using selenium as part of the program, im taking webelements into a variable then convert the variable to a float number as it is on the website. Below is the error:
Traceback (most recent call last): File "C:UsersUserPycharmProjectsSelenium Projectsmain.py", line 74, in <module> future_amount_float = float(future_amount.text) ValueError: could not convert string to float: ''
Tried several different methods to solve this ValueError but all didn’t really worked out.
Advertisement
Answer
This error message…
ValueError: could not convert string to float: ''
…implies that the variable ' '
cannot be converted to float as it is a blank.
Solution
Possibly the textContext
wasn’t rendered when the line of code was executed. So to locate the element you need to induce WebDriverWait for the visibility_of_element_located()
and you can use the following Locator Strategy:
Using
XPATH
:future_amount = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//[@id="app"]/div[1]/div[2]/div[1]/div/div[3]/div[2]/div[3]/div/div/span/span"))) future_amount_float = float(future_amount.text)
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC