You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We use PaymentSheet.FlowController in our app. We recently updated the Stripe SDK from version 2.48.0 to a more up to date version (tested up to 21.0.1) and have run into an issue.
For some background info: we have end-to-end tests using Appium that we run our app through, and that includes opening and submitting a payment in test mode using this Flow Controller.
The issue is even though we are able to locate and manipulate all of the elements to enter a test card number, expiration date, security code, and zip code, the primary button to confirm payment method on the bottom sheet is not locatable in Appium after updating the Stripe SDK. We recognize this could be an automation issue, but this only occurs after the Stripe SDK upgrade so we thought to inquire here.
Here is a screenshot of the inspected view hierarchy in version 2.48.0, where the primary button is reflected:
Here is a screenshot of the inspected view hierarchy in version 20.53.0 (same result with 21.0.1), where the primary button is not reflected (even though it is on screen and interact-able):
Our question is - is there anything that can be thought of that might explain the change in the UI inspectability of this button, and any way to gain back the ability to locate it in Appium?
This issue prevents us from completing automated payment tests, which is critical for our release process. Thank you in advance.
Code to reproduce
Payment sheet creation is pretty straightforward using FlowController and no changes to this code were needed in the SDK upgrade:
We've tried a couple of methods for looking for the button in our test script:
xpath: //android.widget.TextView[@text="Confirm payment"]
id: [package]:id/primary_button
The text was updated successfully, but these errors were encountered:
Thank you for this! I'm a bit stuck on the composite build setup, but I will give it a closer look early next week and reply back soon after. Sorry for the delay.
Summary
We use
PaymentSheet.FlowController
in our app. We recently updated the Stripe SDK from version 2.48.0 to a more up to date version (tested up to 21.0.1) and have run into an issue.For some background info: we have end-to-end tests using Appium that we run our app through, and that includes opening and submitting a payment in test mode using this Flow Controller.
The issue is even though we are able to locate and manipulate all of the elements to enter a test card number, expiration date, security code, and zip code, the primary button to confirm payment method on the bottom sheet is not locatable in Appium after updating the Stripe SDK. We recognize this could be an automation issue, but this only occurs after the Stripe SDK upgrade so we thought to inquire here.
Here is a screenshot of the inspected view hierarchy in version 2.48.0, where the primary button is reflected:
Here is a screenshot of the inspected view hierarchy in version 20.53.0 (same result with 21.0.1), where the primary button is not reflected (even though it is on screen and interact-able):
Our question is - is there anything that can be thought of that might explain the change in the UI inspectability of this button, and any way to gain back the ability to locate it in Appium?
This issue prevents us from completing automated payment tests, which is critical for our release process. Thank you in advance.
Code to reproduce
Payment sheet creation is pretty straightforward using FlowController and no changes to this code were needed in the SDK upgrade:
Android version
Across all versions of Android.
Impacted devices
None in particular.
Installation method
Through the Gradle dependency.
Dependency Versions
Kotlin: 1.9.0
stripe-android: 20.53.0
Android Gradle Plugin: 8.6.1
Gradle: 8.7
SDK classes
PaymentSheet.FlowController
Additional info
We've tried a couple of methods for looking for the button in our test script:
xpath:
//android.widget.TextView[@text="Confirm payment"]
id:
[package]:id/primary_button
The text was updated successfully, but these errors were encountered: