欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自动化定位元素策略分析

程序员文章站 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是否唯一
页面是否有特殊按钮可定位
页面是否有特殊文字可定位

相关标签: python自动化测试