如何解决尝试了几种方法,但这个值错误不断弹出与 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 时,我将 webelement 转换为变量,然后将变量转换为浮点数,就像它在网站上一样。以下是错误:
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
。因此,要找到您需要为 visibility_of_element_located()
引入 WebDriverWait 的元素,您可以使用以下 Locator Strategy:
-
使用
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。