如何从动态表中检索数据 - selenium python

时间:2018-05-23 09:44:52

标签: python python-3.x selenium selenium-webdriver xpath

我尝试从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 dynamic we table from http://qavalidation.com/demo/

动态我们来自http://qavalidation.com/demo/

3 个答案:

答案 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