我有一个包含5列和一些行的表的页面。当我点击第1列的标题(索引ID是1)时,它按字母顺序对行进行排序。 我想验证该列是否按ABC顺序对行进行排序。 我不知道该怎么做。selenium Python如何检查表列是否按字母顺序排序
我已经编写了Selenium Python代码来点击标题,并且我有可以遍历表格的代码。在for循环中,我想检查一下该列是否按ABC顺序对数据进行排序。 我需要一些帮助如何检查每行中的文本是否以ABC顺序排列。
我给for循环遍历表的代码段是:
def is_column_sorted(self): # Is the columns sorted in ABC order when the header was clicked
try:
table_id = WebDriverWait(self.driver, 20).until(EC.presence_of_element_located((By.ID, 'data_configuration_data_previews_ct_fields_body')))
rows = table_id.find_elements(By.TAG_NAME, "tr")
for row in rows:
# Get the columns
col_name = row.find_elements(By.TAG_NAME, "td")[1] # This is the Configuration Name column
col_type = row.find_elements(By.TAG_NAME, "td")[3] # This is the Type column
col_rows = row.find_elements(By.TAG_NAME, "td")[4] # This is the Rows column
print "col_name.text = "
print col_name.text
print col_type.text
print col_rows.text
if (col_name.text == "data1"):
return True
return False
except NoSuchElementException, e:
print "Element not found "
print e
self.save_screenshot("data_previews_page_column_sort")
return False
哪些点击头我的测试用例代码段是:
def test_sort_data_preview(self): # On teh Data preview view page click col 1 (Configuration) to sort it
print "*** Test sort_data_preview ***"
tool_bar = ToolbarPage(self.driver)
data_previews_page = tool_bar.clickDataPreviews()
data_previews_page.select_a_data_preview(Globals.datapreview_crm_name)
data_previews_view_page = data_previews_page.click_view_link(Globals.datapreview_crm_name)
data_previews_view_page.click_column_header_to_sort()
data_previews_view_page.is_column_sorted()
例如Col1中的数据可能是:
Lademo_CRM_Data_Preview
Test Character Code
Escr data preview
Selenium CRM Data Preview
etc
当我单击Col1的标题后,网页将按字母顺序排序。 我如何检查它是否正确排序?
感谢, 里亚兹
在对列进行排序之前,我可以遍历行并将列1的值存储到列表中。按ABC顺序对列表进行排序。然后,我单击列进行排序,然后遍历行并将值与列表中的值进行比较。如果匹配,那么列按字母顺序排序。考试通过了。你怎么看? –