zoukankan      html  css  js  c++  java
  • selenium+python自动化测试--隐藏元素

    最近工作中遇到了关于隐藏元素如何定位与点击的问题,下面就总结下解决过程。

    场景:在输入框中输入搜索条件(admin),下面出现相应的搜索结果,选择搜索结果。搜索结果区在未搜索前和选择结果后为隐藏状态。

    1、思路分析:

    (1)点击编辑按钮(出现普通弹框)

    (2)输入搜索条件

    (3)选择搜索结果

    (4)点击确定按钮进行保存

    2、初步代码编写

    文件名称:architectureCard.py

    from selenium import webdriver
    import time
    
    base_url="url地址"
    driver = webdriver.Firefox()
    driver.get(base_url+"/6403/card")
    driver.maximize_window()
    
    
    #点击编辑按钮
    driver.find_element_by_css_selector(".sc-ebFjAB.jLsEQY.sc-rBLzX.crxYrd").click()
    #输入搜索条件
    driver.find_elements_by_tag_name("input")[6].send_keys("admin")
    time.sleep(2)
    #选择搜索值
    js = 'document.getElementsByClassName("bp3-menu-item bp3-popover-dismiss")[1].click()'
    driver.execute_script(js)
    time.sleep(2)
    #点击确定
    driver.find_element_by_css_selector(".bp3-button.bp3-intent-primary.sc-cLQEGU.hOClYU").click()
    
    time.sleep(3)
    
    driver.quit()

    3、代码优化,页面封装与调试

    文件名称:architectureCard.py

    from selenium import webdriver
    from common.base import Base
    import time
    
    base_url = "url地址"
    
    class EditArch(Base):
    
        #编辑架构卡按钮
        editarch = ("css selector",".sc-ebFjAB.jLsEQY.sc-rBLzX.crxYrd")
        #责任人输入框,取输入框第七个
        person = ("tag name","input")
        #确定按钮
        submit = ("css selector",".bp3-button.bp3-intent-primary.sc-cLQEGU.hOClYU")
    
        def editArch(self):
            #点击编辑按钮
            self.click(self.editarch)
            #输入搜索条件
            aa=self.finds(self.person)
            aa[6].send_keys("admin")
            time.sleep(2)
            #选择搜索结果
            js = 'document.getElementsByClassName("bp3-menu-item bp3-popover-dismiss")[1].click()'
            self.driver.execute_script(js)
            #点击确定按钮
            self.click(self.submit)
    
    if __name__ == '__main__':
        driver = webdriver.Firefox()
        driver.get(base_url+"/6403/card")
        driver.maximize_window()
        time.sleep(2)
    
        editA = EditArch(driver)
        editA.editArch()
    
        time.sleep(2)
        driver.quit()

    通过上图和代码可以发现,隐藏元素(搜索结果)可以定位到,但是在选中(点击)搜索结果时,却没有使用普通定位加click的方法,是因为click在点击隐藏元素的时候很难点击到,用js方法即可解决隐藏元素点击问题。

    4、代码运行结果

  • 相关阅读:
    发现CSDN的一个小Bug,CSDN网站管理人员进来看看哈~~
    “凡客好声音”摇滚派对专场 正火热抢票中!
    帧动画
    java WEB Response重定向和缓存控制
    上一篇括号配对让人联想起catalan数,顺便转载一篇归纳的还不错的文章
    字符串循环移位
    应用层协议实现系列(三)——FTPserver之设计与实现
    HDU1575-Tr A(矩阵高速幂)
    音视频即时通讯的分包与重组
    怎样批量重命名照片,可是去掉那个烦人的括号
  • 原文地址:https://www.cnblogs.com/yudx/p/11320078.html
Copyright © 2011-2022 走看看