【发布时间】:2019-08-02 13:13:34
【问题描述】:
请在下面找到详细信息
我想做什么
我必须打开一个网页并转到一个选项卡。在选项卡中我有 n 个链接,它可能包含一个链接或五个链接,随机存在。当我打开第一个链接时,我只有一个值存在。同样,在打开其他链接时,我将只有一个值。现在我已经添加了每个链接中存在的所有值并写入 Excel。例如:第一个链接有 2,第二个链接有 3。我将两个值相加(2+3=5)并存储它
到目前为止我做了什么。
我正在根据选项卡中存在的链接数进行迭代。代码运行直到选项卡中存在的所有链接都运行完毕。它将打开第一个链接,获取值并将值存储为浮点数(sheetnew .write(1,6,float(Storedvalue)) ) 这样我就可以将该值作为数字并将其添加到下一个链接中存在的下一个值中。当我运行代码时,我将检查该特定单元格是否empy by(如果 textcomment ==none)。如果单元格为空,它将第一个链接的值存储为单元格中的浮点数(1,6)。然后它将打开第二个链接,它将检查单元格是否为空.因为它不会为空,它将包含第一个链接的值。所以它将运行我从 Excel 获取第一个链接的值的 else 部分为 (textcomment=details.cell(1,6)) 和来自第二个链接的新值作为(Storedvalue=Commentvalue.text)。现在我正在尝试添加这两个值
我面临的问题:
所以我无法将值相加。我尝试通过 (Addedvalue= float (textcomment.value) + float(Storedvalue)) 添加。但我无法做到。我有以下错误
button=driver.find_element_by_xpath('//a[@class="btn btn-small btn-success pull-right"]/span[@class="text"]');
button.click();
time.sleep(10);
textcomment=details.cell(1,6)
if textcomment == None:
Commentvalue=driver.find_element_by_xpath('/html/body/div[2]/div/ul/li[2]/a/span')
Storedvalue=Commentvalue.text;
sheetnew.write(1,6,float(Storedvalue));
wb.save('excel path');
driver.close();
driver.switch_to.window(window_before);
else:
textcomment=details.cell(1,6)
Commentvalue=driver.find_element_by_xpath('/html/body/div[2]/div/ul/li[2]/a/span')
Storedvalue=Commentvalue.text;
Addedvalue= float (textcomment.value) + float(Storedvalue);
sheetnew.write(1,6,float(Addedvalue));
wb.save('excel path');
driver.close();
driver.switch_to.window(window_before);
错误
Addedvalue= float (textcomment.value) + float(Storedvalue);
ValueError: could not convert string to float:
如果有任何其他方法可以实现这一点,请告诉我。
【问题讨论】:
-
ValueError: could not convert string to float:。您的值之一是无法转换的字符串。找出无效的浮点数据在字符串中的位置。 -
textcomment.value和Storedvalue的值是多少? -
@supputuri:这些值因链接而异。假设第一个链接有 5,我会将值作为 num=value .text 并将其存储为 float(num)。
标签: excel python-3.x selenium selenium-webdriver