首页 > 解决方案 > Is it possible to testing uitest (XCUI) when open url external browser?

问题描述

Currently, I have to create automation ui test with XCUI and I have some action to open external browser by default is Safari.

I need to create some uitest's behavior like this.

  1. Go to external browser when click my button.
  2. Check is open correct url in browser (or just open browser) ?
  3. Go back to our app with resume state.

Is it impossible to do that ?.

标签: iosswiftxcodetestingxcuitest

解决方案


Absolutely. Safari is an XCUIApplication just like any other with a bundle identifier of com.apple.mobilesafari.

To check the URL you'll tap() the URL field (it's a button when a page loads) and read the value of the URL field (at this point it's a textField). Once you're done asserting that, activate() your app and you'll be back in it (note: my tests finish after asserting so I don't have to do this, but it's the published method - you could always enter debug and find how to tap the button to return to your application in the top-left of the screen if this doesn't work).

I'm happy to provide exact code if you show me you've tried this and can't get it working, but it's pretty straightforward XCUI automation.


推荐阅读