Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于元素判断的回调问题 #26

Closed
TediWang opened this issue Apr 11, 2016 · 5 comments
Closed

关于元素判断的回调问题 #26

TediWang opened this issue Apr 11, 2016 · 5 comments
Assignees

Comments

@TediWang
Copy link

登陆App正常工作的case:

return driver
          .elementByName('我  的')
          .tap()
          .elementByName('登录/注册')
          .click()
          .sleep(1000)
          .waitForElementByXPath('//UIATextField[1]')
          .sendKeys('123456')
          .waitForElementByXPath('//UIASecureTextField[1]')
          .sendKeys('123')
          .sleep(1000)
          .sendKeys('\n')
          .sleep(5000)
          .takeScreenshot();

如果需要对是否登陆做判断,根据是否有登陆按钮:

return driver
          .elementByName('我  的')
          .tap()
          .elementByNameOrNull('登录/注册',function(err,el){
            if(el){
               el.click()
               .waitForElementByXPath('//UIATextField[1]')
               .sendKeys('123456')
               .waitForElementByXPath('//UIASecureTextField[1]')
               .sendKeys('123')
               .sleep(1000)
               .sendKeys('\n')
               .sleep(5000)
               .takeScreenshot();
            }else{
               driver
               .elementByName('首  页')
               .tap();
            }
          })

当case运行到el.click后,后面的填写用户名不会再继续执行下去,测试结束。不知道是否是我使用的问题?

@tsj1107
Copy link

tsj1107 commented Apr 12, 2016

waitForElementByXPath sendKeys 等都是 driver 上的方法,el 上是不存在的

@xudafeng
Copy link
Member

@TediWang
Copy link
Author

非常感谢 @xudafeng @tsj1107 ,promise语法熟悉了一下。
case调整了一下,能正常判断是否登陆并执行相应的逻辑。
Case代码:

return driver
          .elementByName('我  的')
          .tap()
          .elementByNameOrNull('登录/注册')
          .then(function(el){
            if(el){
              return driver.elementByName('登录/注册')
                     .click()
                     .waitForElementByXPath('//UIATextField[1]')
                     .sendKeys('123456')
                     .waitForElementByXPath('//UIASecureTextField[1]')
                     .sendKeys('123')
                     .sleep(1000)
                     .sendKeys('\n')
                     .sleep(5000)
                     .takeScreenshot();
            }else{
              return driver
               .elementByName('首  页')
               .tap();
            }
          });

@xudafeng
Copy link
Member

@TediWang 💯

@septem123
Copy link

安卓的各种element方法和hasElement方法 只要找不到元素 直接就抛异常 了 根本没有后面的处理

@xudafeng xudafeng added the FAQ label Nov 21, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants