测试之家
  • Topics
  • QA
  • 招聘
  • 社区学堂新
  • 开源项目
  • 活动
  • Wiki
  • Sign Up
  • Sign In
会员
testjson
第 71977 位Users / 2022-07-14
28 篇帖子 • 195 条回帖
4 关注者
3 正在关注
22 收藏
未设置 GitHub 信息.
  • 个人信息
  • 专栏
  • 话题
  • 回帖
  • 收藏
  • 关注中
  • 关注者
  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 21, 2022

    嗯,感谢,已经找前端了,中午帮我看看

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 21, 2022

    我们系统的不一样,你定位到直接输入会有弹框,不想办法隐藏弹框,就会把其他元素遮挡无法定位

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 20, 2022

    用了这种方法,确实可以,能直接赋值,但我提交的时候,出现了这种情况

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 20, 2022

    刚开始没注意你的回复,确实是用这种方式解决的,直接用 js 传值,不触发弹框

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 20, 2022
    def keyboard(self,loc):
        self.locator(loc).send_keys(Keys.ENTER)
    
    self.keyboard(self.end_date)
    

    为啥敲击回车的操作不起作用

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 20, 2022

    enter 应该有用,我下午试试

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 20, 2022

    我开始就是想的这个办法,但是空白页面,怎么点击啊,又没可点击的控件
    我刚试了点页面上其他可点击的控件,日期弹框还是不隐藏

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 20, 2022

    js 操作还没试过,输入,我用的就是输入,输入后,日期弹框无法隐藏,主要是这个问题,至于点击,我觉得不太合适,因为日期,万一我以后要选其他日期怎么办?

  • 急,我们的系统的日期控件,在做 webUI 自动化时,输入日期,但是日期弹框一直显示,遮挡其他元素,导致其他元素无法定位 at October 20, 2022

    是上面两种不好处理,第三种倒简单了,定位输入框,输入,点击确定就可以搞定

    就这两种控件,输入日期,执行脚本的时候,没法让日期弹框隐藏,遮挡了其他元素的定位
    我刚想了一种办法,就是输入日期后,移动鼠标到输入框外面,然后点击,就可以隐藏日期弹框

    这是封装的移动鼠标的方法

    def move_by_offset(self,x,y):
        self.action.move_by_offset(x,y).perform()
    

    用例里面使用了这个移动鼠标的方法

    self.move_by_offset(100,0)
    

    但是现在的问题是,我怎么在移动鼠标后的位置进行点击
    刚试了在封装移动鼠标的方法后面直接加 click 不行

    def move_by_offset(self,x,y):
           self.action.move_by_offset(x,y).click.perform()
    
  • 我写的显示等待封装,在测试用例里面使用报错 at October 19, 2022

    我是在,写页面元素对象的页面,引入的 from selenium.webdriver.common.by import By
    元素定位的方式的话,我这也经常用的是 xpath, 但是我没有在 basepage 里去区分定位的方式,而是在这个页面,元素定位的时候加入了定位的方式

    from selenium.webdriver.common.by import By
    from basepage.BasePage import BasePage
    from selenium import webdriver
    import time
    
    class LoginPage(BasePage):
        #页面url
        url = ''
        #页面元素定位
        username = (By.XPATH, '//input[@placeholder="请输入用户名"]')
        password = (By.XPATH, '//input[@placeholder="请输入密码"]')
        #登录业务逻辑
        def login(self,usr,pwd):
            self.open(self.url)
            self.input(self.username,usr)
            time.sleep(2)
            self.input(self.password,pwd)
            time.sleep(2)
    
  • 我写的显示等待封装,在测试用例里面使用报错 at October 19, 2022

    好的,明白了

  • 我写的显示等待封装,在测试用例里面使用报错 at October 18, 2022

    我有几个疑问
    1、为啥要用 appium, MobileBy, 因为我这个是 webui 自动化框架,appium 不是搞移动端的吗?
    2、元素定位,xpath, 那要是其他的怎么办?id ,name

    MobileBy.XPATH
    
  • 我写的显示等待封装,在测试用例里面使用报错 at October 18, 2022

    那应该怎么写?

  • 我写的显示等待封装,在测试用例里面使用报错 at October 18, 2022

    多谢,现在明白了

  • 我写的显示等待封装,在测试用例里面使用报错 at October 18, 2022
    selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: 'using' must be a string
    
  • 【自动化测试】绕过登录模块的腾讯云滑块验证码。 at October 12, 2022

    我刚查了些资料,可以通过 cookie 绕过验证码,似乎也是可行的

  • 写的自动化脚本(UI,接口) at October 11, 2022

    好的,我再继续把我的框架优化下

  • 【自动化测试】绕过登录模块的腾讯云滑块验证码。 at October 11, 2022


    楼主,像这种滑块验证,怎么弄

  • 写的自动化脚本(UI,接口) at October 11, 2022

    嗯,元素定位的方法我写了很多,什么 id,name,等,粘贴的代码只粘贴了一个 xpath 的,确实,我写的时候好多定位都是 xpath, 你说的让脚本脱离代码环境,是说的数据驱动,关键字驱动吗,这个我有考虑做,后面计划是想做成这样

  • 写的自动化脚本(UI,接口) at October 10, 2022

    还有,帮我看下,我这样写有啥问题吗,我现在感觉这样写,测试用例里面,取定位元素的方式,和值,那块有点繁琐,不知道能不能再优化

    base.find_element(loginpage.username[0],loginpage.username[1]).send_keys(username)
    

    就这一块

  • 写的自动化脚本(UI,接口) at October 10, 2022

    好了,已经解决了上面的问题了,但是不知道为什么会启动两次浏览器,我再看看

  • 写的自动化脚本(UI,接口) at October 10, 2022
    def find_element(self, lc, locator,timeout=''):
        """元素定位"""
        if lc == "xpath":
            ele = WebDriverWait(self.driver, timeout=10)\
                .until(EC.visibility_of_element_located((By.XPATH,locator)))
    
    class Login_Page_Locator(BasePage):
        """登录页元素定位"""
        username = ('xpath', '//input[@placeholder="请输入用户名"]')
        password = ('xpath', '//input[@placeholder="请输入密码"]')
        submit = ('xpath','//span[text()="登录"]')
    
    class Test_Login(object):
        loginpage = Login_Page_Locator()
        base = BasePage()
        @allure.story("登录用例")
        @allure.severity(allure.severity_level.BLOCKER)
        def test_login1_normal(self):
            """username and passwd is normal"""
            Logger().info('test_login success')
            try:
                #输入用户名
                self.base.find_element(self.loginpage.username[0],self.loginpage.username[1]).send_keys(username)
            except NoSuchElementException:
                Logger().error('login no find element')
            #assert username == "admin"
            #insert_img("login_normal.png")
    

    为什么我这样写,一直在定位元素

  • 写的自动化脚本(UI,接口) at October 10, 2022

    嗯是这样的

  • basepage 报这个错,怎么解决,AttributeError: 'tuple' object has no attribute 'send_keys' at October 09, 2022
    def __find_element__(self, lc, locator):
        """元素定位"""
        if lc == "id":
            #ele = self.driver.find_element(By.ID, locator)
            ele = WebDriverWait(self.driver, 10).until(ec.visibility_of_element_located((By.ID,locator)))
    
        return ele
    

    这样调整了一下,解决了

  • basepage 报这个错,怎么解决,AttributeError: 'tuple' object has no attribute 'send_keys' at October 09, 2022
    def __find_element__(self, lc, locator):
        """元素定位"""
        if lc == "id":
            ele = self.driver.find_element(By.ID, locator)
            print(type(ele))
            WebDriverWait(self.driver, 10).until(ec.visibility_of_element_located(ele))
    
    <class 'selenium.webdriver.remote.webelement.WebElement'>
    Traceback (most recent call last):
      File "D:/demo_123/basic/page.py", line 48, in <module>
        a.__find_element__('id','kw').send_keys('python')
      File "D:/demo_123/basic/page.py", line 19, in __find_element__
        WebDriverWait(self.driver, 10).until(ec.visibility_of_element_located((ele)))
      File "D:\demo_123\venv\lib\site-packages\selenium\webdriver\support\wait.py", line 81, in until
        value = method(self._driver)
      File "D:\demo_123\venv\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 125, in _predicate
        return _element_if_visible(driver.find_element(*locator))
    TypeError: find_element() argument after * must be an iterable, not WebElement
    
  • Prev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Next
  • 关于 / 活跃用户 / 中国移动互联网测试技术大会 / 反馈 / Github / API / 帮助推广
    TesterHome社区,测试之家,由众多测试工程师组织和维护的技术社区,致力于帮助新人成长,提高测试地位,推进质量发展。Inspired by RubyChina
    友情链接 WeTest腾讯质量开放平台 / InfoQ / 掘金 / SegmentFault / 测试窝 / 百度测试吧 / IT大咖说
    简体中文 / 正體中文 / English

    ©testerhome.com 测试之家   渝ICP备2022001292号
      渝公网安备 50022202000435号    版权所有 © 重庆年云聚力信息技术有限公司