尝试了几种方法,但此值错误不断弹出 运行 WebDriver

Tried several methods but this Value Error keeps popping up running with the WebDriver

下面是我的代码程序遇到运行时 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 = ()

由于我在程序中使用 selenium,我将 webelements 放入一个变量中,然后将该变量转换为网站上的浮点数。以下是错误:

Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\Selenium Projects\main.py", line 74, in <module>
    future_amount_float = float(future_amount.text)
ValueError: could not convert string to float: ''

尝试了几种不同的方法来解决这个 ValueError 但都没有真正解决。

这个错误信息...

ValueError: could not convert string to float: ''

...暗示变量 ' ' 不能转换为 float 因为它是 blank.


解决方案

可能 textContext 在执行代码行时未呈现。所以要找到你需要归纳的元素 WebDriverWait for the visibility_of_element_located() and you can use the following :

  • 使用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)
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC