【发布时间】:2016-02-13 02:08:14
【问题描述】:
我有一个包含 5 列和一些行的表格的页面。当我单击第 1 列的标题(索引 ID 为 1)时,它按字母顺序对行进行排序。 我想验证该列是否按 ABC 顺序对行进行了排序。 这部分我不知道怎么做。
我已经编写了 Selenium Python 代码来单击标题,并且我有可以循环遍历表格的代码。在 for 循环中,我想检查该列是否按 ABC 顺序对数据进行了排序。 我需要一些帮助来检查每行中的文本是否按 ABC 顺序排列。
我的 for 循环遍历表的代码 sn-p 是:
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
单击标题的我的TestCase代码sn-p是:
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 顺序对列表进行排序。然后我单击该列对其进行排序,然后遍历行并将值与列表中的值进行比较。如果匹配,则该列已按字母顺序排序。考试通过了。你怎么看?
标签: python-2.7 selenium selenium-webdriver