我尝试从selenium python中的动态网络表中检索数据,但是在控制台中检错 错误为"
<% @attachments.reject { |attachment| attachment.image.file.identifier == "no-image.jpg" }.each do |attachment| %>
TypeError:必须是str,而不是int
失败(错误= 1)
values = self.driver.find_element_by_xpath(".//*[@id='table01']/tbody/tr["+row+"]/td["+col+"]").text
Github示例代码https://github.com/venkywarriors619/selenium_with_python/blob/master/Python_basics/SeleniumWebDriver_Advanced/DynamicWebTable1.py
答案 0 :(得分:0)
您无法添加字符串和整数:
>>> "1"+2
Traceback (most recent call last):
File "<input>", line 1, in <module>
"1"+2
TypeError: must be str, not int
您必须将int转换为str:
>>> "1"+str(2)
'12'
答案 1 :(得分:0)
期待字符串值,但是您传递的是int值。它发生在我们将字符串连接到整数时。请更改代码中的以下行。
values = self.driver.find_element_by_xpath(".//*[@id='table01']/tbody/tr["+row+"]/td["+col+"]").text
到
values = self.driver.find_element_by_xpath(".//*[@id='table01']/tbody/tr["+str(row)+"]/td["+str(col)+"]").text
它可以解决您的问题。
答案 2 :(得分:0)
此错误消息......
TypeError: must be str, not int
...意味着在上述行中,您的程序需要一个 String 类型的参数,其中传递 Interger 类型的argumnent。
要从动态网络表格中检索数据,您需要更改代码行,如下所示:
for row in range(rows):
for col in range(columns):
values = self.driver.find_element_by_xpath('.//*[@id="table01"]/tbody/tr["'+row+'"]/td["'+col+'"]').text