添加赛区_001总体流程
- 查询后如果存在就删除
- 添加时输入赛区
- 滚动条滑动到底部
- 提交后检查添加成功
- 滚动条滑动到顶部
- 查询存在该赛区信息
定位难点分析
难点1:提交无法定位
原因:提交按钮在界面下方,默认无法定位它,需要把滚动条拖拽到底部。
难点:在frame里无法滚动纵向滚动条。
解决方案:切换回默认主网页,然后把滚动条拖拽到底部。
难点2:无法定位到提示信息
原因:frame有三层嵌套,提示信息不在主网页里,也不在最里层。
解决方案:切换回上一层网页,打印网页源代码,确认提示信息在哪一层。
查询后如果存在就删除
- 顺序实现:查询、如果存在就删除
driver.find_element(By.ID,"_easyui_textbox_input1").clear()
driver.find_element(By.ID,"_easyui_textbox_input1").send_keys("A")
driver.find_element(By.XPATH,"//span[text()='查询']").click()#查询
sleep(2)
if is_element_present(By.XPATH,"//td[@field='name']/div[text()='A']"):
d=driver.find_element(By.XPATH,"//td[div='A']/../td[@field='view']/div/a[2]")
d.click()#删除
driver.find_element(By.XPATH,"//span[text()='确定']").click()
添加时输入赛区
- 顺序实现:添加时输入赛区
driver.find_element(By.XPATH,"//span[text()='添加赛区']").click()
WebDriverWait(driver,20).until_not(expected_conditions.presence_of_element_located((By.ID,"Loading")))
WebDriverWait(driver,13).until(expected_conditions.frame_to_be_available_and_switch_to_it("frmDlg"))
name_input=driver.find_element(By.ID,"_easyui_textbox_input1")
name_input.clear()
name_input.send_keys("A")
滚动条滑动到底部
- 顺序实现:滚动条滑动到底部
driver.switch_to.default_content()
js = 'window.scrollTo(0, document.body.scrollHeight);'
driver.execute_script(js)# 滚动条滑动到底部
WebDriverWait(driver,20).until(expected_conditions.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@data-itemid='213']")))
WebDriverWait(driver,13).until(expected_conditions.frame_to_be_available_and_switch_to_it("frmDlg"))
sleep(2)
提交后检查添加成功
- 顺序实现:提交后检查“添加成功”
submit_button=driver.find_element(By.ID,"pButton_ctlSave")
submit_button.click()#提交
sleep(1)
driver.switch_to.parent_frame()
assert is_element_present(By.XPATH,"//div[text()='赛区信息保存成功']")
WebDriverWait(driver,20).until_not(expected_conditions.presence_of_element_located((By.XPATH,"//div[text()='赛区信息保存成功']")))
滚动条滑动到顶部
- 顺序实现:滚动条滑动到顶部
driver.switch_to.default_content()
js2="window.scrollTo(document.body.scrollHeight, 0);"
driver.execute_script(js2)# 滚动条滑动到顶部
WebDriverWait(driver,20).until(expected_conditions.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@data-itemid='213']")))
WebDriverWait(driver,20).until_not(expected_conditions.presence_of_element_located((By.ID,"Loading")))
查询存在该赛区信息
- 顺序实现:查询存在该赛区信息
![](/i/l/?n=23&i=blog/2351212/202212/2351212-20221230114728736-1674510392.png
driver.find_element(By.ID,"_easyui_textbox_input1").clear()
driver.find_element(By.ID,"_easyui_textbox_input1").send_keys("A")
driver.find_element(By.XPATH,"//span[text()='查询']").click()#查询
sleep(2)
assert is_element_present(By.XPATH,"//td[@field='name']/div[text()='A']")