[英]how to retrieve data from dynamic table - selenium python
我正在尝试从Selenium python中的动态Web表检索数据,但在控制台中将错误显示为“
values = self.driver.find_element_by_xpath(".//*[@id='table01']/tbody/tr["+row+"]/td["+col+"]").text
TypeError:必须为str,而不是int
失败(错误= 1)
class DynamicWebTable1(unittest.TestCase):
@classmethod
def setUpClass(cls):
chrome_driver_path = os.path.abspath('..') + "\\Drivers\\chromedriver.exe"
cls.driver=webdriver.Chrome(chrome_driver_path)
cls.driver.implicitly_wait(30)
cls.driver.maximize_window()
# navigate to the application home page
cls.driver.get("http://qavalidation.com/demo/")
def test_get_table_data(self):
time.sleep(10)
columns = len(self.driver.find_elements_by_xpath(".//*[@id='table01']/tbody/tr[1]/td"))
rows = len(self.driver.find_elements_by_xpath(".//*[@id='table01']/tbody/tr"))
print("rows - ",rows) # rows - 3
print("columns - ",columns) #columns - 4
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
print(" Dynamic web table index {row} ,{col} value is {values} ".format(row, col, values))
@classmethod
def tearDownClass(cls):
# close the browser window
cls.driver.quit()
Github示例代码https://github.com/venkywarriors619/selenium_with_python/blob/master/Python_basics/SeleniumWebDriver_Advanced/DynamicWebTable1.py
此错误消息...
TypeError: must be str, not int
......暗示,而在上述行程序预计在那里作为argumnent的基于整数类型传递给它一个参数的字符串类型。
要从动态Web表中检索数据,您需要按如下所示更改代码行:
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
您不能添加字符串和整数:
>>> "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'
它期望字符串值,但您正在传递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
它可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.