自动化定位元素策略分析
程序员文章站
2022-07-12 14:55:11
...
1.如何定位只有一个图标的按钮,鼠标悬浮才显示字体提示的
找到标签中的属性,越特殊的属性定位越容易
<a data-v-05d28b9c="" href="#/ProjectIndex" class="el-tooltip outlink outlinkDp" target="_blank" aria-describedby="el-tooltip-5217" tabindex="0"><img data-v-05d28b9c="" src="data:image/png;base64,C" alt=""></a>
示例1:xpath='//a[@href="#/ProjectIndex"]'
2.如何断言点击新增弹窗的页面
示例:点击大屏按钮,新增窗口出现大屏页面
新增窗口,切换窗口,获取新窗口的URL,去断言判断
# 获取当前窗口句柄
cur_handle=self.driver.current_window_handle
# 打印当前获取的窗口名称
print(self.driver.title)
# current_url 方法可以得到当前页面的URL
print(self.driver.current_url)
# 获取所有窗口句柄
all_handles=self.driver.window_handles
for handle in all_handles:
if handle!=cur_handle:
# 切换窗口
self.driver.switch_to.window(handle)
#打印当前窗口title
print(self.driver.title)
print(self.driver.current_url)
screen_url=self.driver.current_url
# 返回主窗口
self.driver.switch_to.window(cur_handle)
return screen_url
#去断言
assert init_loginWeb[2].switch_screen_window() == screen_url
3.点击其他操作业务,前提是登陆成功,如何通用登陆功能
方法一:可在用例前调用登陆操作函数,登陆成功后,进行下一步操作
def test_click_screen(self,init_loginWeb):
logging.info("#########通用用例##########")
# 1.调用登陆操作函数
init_loginWeb[1].login(user, passwd)
logging.info("登陆ok")
# 去点击大屏
init_loginWeb[2].click_screen()
#断言大屏url 是否一致
assert init_loginWeb[2].switch_screen_window() == screen_url
方法二:
class test_dancheshiguliucheng(unittest.TestCase):
driver = webdriver.Chrome(baseInfo.driverqudong) #在测试方法外进行定义driver
@classmethod
def setUpClass(self,driver=driver): #初始化的时候把driver传入
self.driver = driver #初始化全局driver都等于driver
login.login(driver) #初始化登录状态,后面写多少方法都不用再跑一遍登录了
def test_danchewanzhengliucheng(self):
#发单
driver = self.driver #注意,要把方法里要用到的driver定义为全局的driver
send_order.send_order(driver)
@classmethod
def tearDownClass(self):
self.driver.quit() #因为这里还要用到driver,所以前面要放在测试方法外进行定义
4.隐藏下下拉框中的元素,如何定位
方法:
1.先定位下拉框
2.再点击下拉框中的元素,比如下图中的退出
#定位名称
index_username = (By.XPATH,'//span[@title="您好"]')
# 定位退出
exit=(By.XPATH,'//li[@class="el-menu-item"]//i[@class="el-icon-ajm-exit"]')
5.如何定位Xpath 有多个值的元素
下图中需要定位确定按钮,可是有出现5个值
#元素定位
confirm_button='//div[@class="dialog-footer"]//button'
#强制等待
time.sleep(5) #用了强制等待
#定位到需要的那个确定值,点击
#数组从0开始计
self.driver.find_elements_by_xpath(cml.confirm_button)[3].click()
6.提示语信息只弹窗悬浮显示几秒的元素如何定位?
先打开F12
去操作可以弹窗提示
点击source的调试功能
再去页面查看元素并定位,元素就不会马上消失了
定位完成,点击继续运行,调试结束即可
总结
找页面的特征信息
标题是否唯一
url是否唯一
页面是否有特殊按钮可定位
页面是否有特殊文字可定位
下一篇: Week2 实验