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

Intermittent UI test failure - < ThreeDotMenuTest.threeDotMenuItemsTest> #2103

Open
AndiAJ opened this issue Nov 16, 2022 · 6 comments
Open
Labels
eng:intermittent-test Evil test failures that only happen now-and-then and are a productivity killer eng:ui-test UI Tests

Comments

@AndiAJ
Copy link
Contributor

AndiAJ commented Nov 16, 2022

Firebase Test Run:

Fireabase link
Fireabase link

Stacktrace:

androidx.test.espresso.AmbiguousViewMatcherException: 'view.getContentDescription() is "Forward"' matches 2 views in the hierarchy:

  • [1] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
  • [2] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=false, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
    Problem views are marked with 'MATCHES' below.

View Hierarchy:
+>PopupDecorView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params={(985,559)(wrapxwrap) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged} ty=APPLICATION_PANEL fmt=TRANSLUCENT wanim=0x7f13013e surfaceInsets=Rect(0, 0 - 0, 0) (manual)
fl=ALT_FOCUSABLE_IM SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_LAYOUT_ATTACHED_IN_DECOR
pfl=WILL_NOT_REPLACE_ON_RELAUNCH LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME
fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR}, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+->MenuView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+-->CardView{id=2131296666, res-name=mozac_browser_menu_cardView, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+--->RecyclerView{id=2131296668, res-name=mozac_browser_menu_recyclerView, visibility=VISIBLE, width=656, height=1155, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=25.0, y=35.0, child-count=9}
|
+---->LinearLayout{id=-1, visibility=VISIBLE, width=656, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+----->AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0} MATCHES
|
+----->AppCompatImageButton{id=-1, desc=Refresh, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=218.0, y=0.0}
|
+----->AppCompatImageButton{id=-1, desc=Stop, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=437.0, y=0.0}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=147.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Share, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=273.0, child-count=1}
|
+----->SwitchCompat{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=0.0, text=Request desktop site, input-type=0, ime-target=false, has-links=false, is-checked=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=399.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add to homescreen, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=525.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Find in Page, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=651.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add-ons, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=777.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Synced Tabs, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=903.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Report issue, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1029.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Settings, input-type=0, ime-target=false, has-links=false}
at androidx.test.espresso.AmbiguousViewMatcherException$Builder.build(AmbiguousViewMatcherException.java:6)
at androidx.test.espresso.base.DefaultFailureHandler.lambda$getAmbiguousViewMatcherExceptionTruncater$1(DefaultFailureHandler.java:5)
at androidx.test.espresso.base.DefaultFailureHandler$$ExternalSyntheticLambda0.truncateExceptionMessage(Unknown Source:2)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:5)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:12)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.assertForwardButton(ThreeDotMenuRobot.kt:202)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.access$assertForwardButton(ThreeDotMenuRobot.kt:1)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobot.verifyForwardButtonExists(ThreeDotMenuRobot.kt:31)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:97)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:95)
at org.mozilla.reference.browser.ui.robots.NavigationToolbarRobot$Transition.openThreeDotMenu(NavigationToolbarRobot.kt:62)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest.threeDotMenuItemsTest(ThreeDotMenuTest.kt:95)

Build: 11/16 Main

@AndiAJ AndiAJ added eng:ui-test UI Tests eng:intermittent-test Evil test failures that only happen now-and-then and are a productivity killer labels Nov 16, 2022
@AndiAJ
Copy link
Contributor Author

AndiAJ commented Nov 21, 2022

Flaky 1x on 11/18 Main Firebase link

androidx.test.espresso.AmbiguousViewMatcherException: 'view.getContentDescription() is "Forward"' matches 2 views in the hierarchy:

  • [1] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
  • [2] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=false, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
    Problem views are marked with 'MATCHES' below.

View Hierarchy:
+>PopupDecorView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params={(985,559)(wrapxwrap) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged} ty=APPLICATION_PANEL fmt=TRANSLUCENT wanim=0x7f13013e surfaceInsets=Rect(0, 0 - 0, 0) (manual)
fl=ALT_FOCUSABLE_IM SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_LAYOUT_ATTACHED_IN_DECOR
pfl=WILL_NOT_REPLACE_ON_RELAUNCH LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME
fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR}, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+->MenuView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+-->CardView{id=2131296666, res-name=mozac_browser_menu_cardView, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+--->RecyclerView{id=2131296668, res-name=mozac_browser_menu_recyclerView, visibility=VISIBLE, width=656, height=1155, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=25.0, y=35.0, child-count=9}
|
+---->LinearLayout{id=-1, visibility=VISIBLE, width=656, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+----->AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0} MATCHES
|
+----->AppCompatImageButton{id=-1, desc=Refresh, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=218.0, y=0.0}
|
+----->AppCompatImageButton{id=-1, desc=Stop, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=437.0, y=0.0}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=147.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Share, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=273.0, child-count=1}
|
+----->SwitchCompat{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=0.0, text=Request desktop site, input-type=0, ime-target=false, has-links=false, is-checked=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=399.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add to homescreen, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=525.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Find in Page, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=651.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add-ons, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=777.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Synced Tabs, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=903.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Report issue, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1029.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Settings, input-type=0, ime-target=false, has-links=false}
at androidx.test.espresso.AmbiguousViewMatcherException$Builder.build(AmbiguousViewMatcherException.java:6)
at androidx.test.espresso.base.DefaultFailureHandler.lambda$getAmbiguousViewMatcherExceptionTruncater$1(DefaultFailureHandler.java:5)
at androidx.test.espresso.base.DefaultFailureHandler$$ExternalSyntheticLambda0.truncateExceptionMessage(Unknown Source:2)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:5)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:12)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.assertForwardButton(ThreeDotMenuRobot.kt:202)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.access$assertForwardButton(ThreeDotMenuRobot.kt:1)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobot.verifyForwardButtonExists(ThreeDotMenuRobot.kt:31)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:97)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:95)
at org.mozilla.reference.browser.ui.robots.NavigationToolbarRobot$Transition.openThreeDotMenu(NavigationToolbarRobot.kt:62)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest.threeDotMenuItemsTest(ThreeDotMenuTest.kt:95)

@AndiAJ
Copy link
Contributor Author

AndiAJ commented Dec 8, 2022

Flaky 1x on 12/8 Main Firebase link

androidx.test.espresso.AmbiguousViewMatcherException: 'view.getContentDescription() is "Forward"' matches 2 views in the hierarchy:

  • [1] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
  • [2] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=false, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
    Problem views are marked with 'MATCHES' below.

View Hierarchy:
+>PopupDecorView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params={(985,559)(wrapxwrap) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged} ty=APPLICATION_PANEL fmt=TRANSLUCENT wanim=0x7f13013e surfaceInsets=Rect(0, 0 - 0, 0) (manual)
fl=ALT_FOCUSABLE_IM SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_LAYOUT_ATTACHED_IN_DECOR
pfl=WILL_NOT_REPLACE_ON_RELAUNCH LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME
fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR}, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+->MenuView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+-->CardView{id=2131296666, res-name=mozac_browser_menu_cardView, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+--->RecyclerView{id=2131296668, res-name=mozac_browser_menu_recyclerView, visibility=VISIBLE, width=656, height=1155, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=25.0, y=35.0, child-count=9}
|
+---->LinearLayout{id=-1, visibility=VISIBLE, width=656, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+----->AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0} MATCHES
|
+----->AppCompatImageButton{id=-1, desc=Refresh, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=218.0, y=0.0}
|
+----->AppCompatImageButton{id=-1, desc=Stop, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=437.0, y=0.0}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=147.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Share, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=273.0, child-count=1}
|
+----->SwitchCompat{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=0.0, text=Request desktop site, input-type=0, ime-target=false, has-links=false, is-checked=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=399.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add to homescreen, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=525.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Find in Page, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=651.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add-ons, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=777.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Synced Tabs, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=903.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Report issue, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1029.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Settings, input-type=0, ime-target=false, has-links=false}
at androidx.test.espresso.AmbiguousViewMatcherException$Builder.build(AmbiguousViewMatcherException.java:6)
at androidx.test.espresso.base.DefaultFailureHandler.lambda$getAmbiguousViewMatcherExceptionTruncater$1(DefaultFailureHandler.java:5)
at androidx.test.espresso.base.DefaultFailureHandler$$ExternalSyntheticLambda0.truncateExceptionMessage(Unknown Source:2)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:5)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:12)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.assertForwardButton(ThreeDotMenuRobot.kt:202)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.access$assertForwardButton(ThreeDotMenuRobot.kt:1)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobot.verifyForwardButtonExists(ThreeDotMenuRobot.kt:31)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:97)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:95)
at org.mozilla.reference.browser.ui.robots.NavigationToolbarRobot$Transition.openThreeDotMenu(NavigationToolbarRobot.kt:62)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest.threeDotMenuItemsTest(ThreeDotMenuTest.kt:95)

@AndiAJ
Copy link
Contributor Author

AndiAJ commented Jan 9, 2023

Flaky 1x on 1/8 Main Firebase link

androidx.test.espresso.AmbiguousViewMatcherException: 'view.getContentDescription() is "Forward"' matches 2 views in the hierarchy:

  • [1] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
  • [2] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=false, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
    Problem views are marked with 'MATCHES' below.

View Hierarchy:
+>PopupDecorView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params={(985,559)(wrapxwrap) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged} ty=APPLICATION_PANEL fmt=TRANSLUCENT wanim=0x7f13013e surfaceInsets=Rect(0, 0 - 0, 0) (manual)
fl=ALT_FOCUSABLE_IM SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_LAYOUT_ATTACHED_IN_DECOR
pfl=WILL_NOT_REPLACE_ON_RELAUNCH LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME
fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR}, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+->MenuView{id=-1, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+-->CardView{id=2131296666, res-name=mozac_browser_menu_cardView, visibility=VISIBLE, width=706, height=1225, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+--->RecyclerView{id=2131296668, res-name=mozac_browser_menu_recyclerView, visibility=VISIBLE, width=656, height=1155, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=25.0, y=35.0, child-count=9}
|
+---->LinearLayout{id=-1, visibility=VISIBLE, width=656, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+----->AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0} MATCHES
|
+----->AppCompatImageButton{id=-1, desc=Refresh, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=218.0, y=0.0}
|
+----->AppCompatImageButton{id=-1, desc=Stop, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=437.0, y=0.0}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=147.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Share, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=273.0, child-count=1}
|
+----->SwitchCompat{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=0.0, text=Request desktop site, input-type=0, ime-target=false, has-links=false, is-checked=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=399.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add to homescreen, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=525.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Find in Page, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=651.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add-ons, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=777.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Synced Tabs, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=903.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Report issue, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1029.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Settings, input-type=0, ime-target=false, has-links=false}
The complete view hierarchy is available in artifact file 'view-hierarchy-1.txt'.
at androidx.test.espresso.AmbiguousViewMatcherException$Builder.build(AmbiguousViewMatcherException.java:6)
at androidx.test.espresso.base.DefaultFailureHandler.lambda$getAmbiguousViewMatcherExceptionTruncater$1(DefaultFailureHandler.java:5)
at androidx.test.espresso.base.DefaultFailureHandler$$ExternalSyntheticLambda0.truncateExceptionMessage(Unknown Source:2)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:5)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:12)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.assertForwardButton(ThreeDotMenuRobot.kt:202)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.access$assertForwardButton(ThreeDotMenuRobot.kt:1)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobot.verifyForwardButtonExists(ThreeDotMenuRobot.kt:31)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:97)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:95)
at org.mozilla.reference.browser.ui.robots.NavigationToolbarRobot$Transition.openThreeDotMenu(NavigationToolbarRobot.kt:62)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest.threeDotMenuItemsTest(ThreeDotMenuTest.kt:95)

@AndiAJ
Copy link
Contributor Author

AndiAJ commented Feb 22, 2023

Flaky 1x on 2/21 Firebase link

androidx.test.espresso.AmbiguousViewMatcherException: 'view.getContentDescription() is "Forward"' matches 2 views in the hierarchy:

  • [1] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
  • [2] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=false, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
    Problem views are marked with 'MATCHES' below.

View Hierarchy:
+>PopupDecorView{id=-1, visibility=VISIBLE, width=694, height=1209, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params={(386,1658)(wrapx1209) gr=TOP START CENTER sim={state=unchanged} ty=APPLICATION_PANEL fmt=TRANSLUCENT wanim=0x7f13013d surfaceInsets=Rect(0, 0 - 0, 0) (manual)
fl=ALT_FOCUSABLE_IM SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_LAYOUT_ATTACHED_IN_DECOR
pfl=WILL_NOT_REPLACE_ON_RELAUNCH LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME
fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR}, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+->MenuView{id=-1, visibility=VISIBLE, width=694, height=1209, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+-->CardView{id=2131296666, res-name=mozac_browser_menu_cardView, visibility=VISIBLE, width=694, height=1209, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+--->RecyclerView{id=2131296668, res-name=mozac_browser_menu_recyclerView, visibility=VISIBLE, width=656, height=1155, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=19.0, y=27.0, child-count=9}
|
+---->LinearLayout{id=-1, visibility=VISIBLE, width=656, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+----->AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0} MATCHES
|
+----->AppCompatImageButton{id=-1, desc=Refresh, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=218.0, y=0.0}
|
+----->AppCompatImageButton{id=-1, desc=Stop, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=437.0, y=0.0}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=147.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Share, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=273.0, child-count=1}
|
+----->SwitchCompat{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=0.0, text=Request desktop site, input-type=0, ime-target=false, has-links=false, is-checked=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=399.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add to homescreen, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=525.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Find in Page, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=651.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add-ons, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=777.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Synced Tabs, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=903.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Report issue, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1029.0, child-count=1}
|
+----->AppCompatTextView{id=2131296597, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Settings, input-type=0, ime-target=false, has-links=false}
The complete view hierarchy is available in artifact file 'view-hierarchy-1.txt'.
at androidx.test.espresso.AmbiguousViewMatcherException$Builder.build(AmbiguousViewMatcherException.java:6)
at androidx.test.espresso.base.DefaultFailureHandler.lambda$getAmbiguousViewMatcherExceptionTruncater$1(DefaultFailureHandler.java:5)
at androidx.test.espresso.base.DefaultFailureHandler$$ExternalSyntheticLambda0.truncateExceptionMessage(Unknown Source:2)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:5)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:12)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.assertForwardButton(ThreeDotMenuRobot.kt:202)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.access$assertForwardButton(ThreeDotMenuRobot.kt:1)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobot.verifyForwardButtonExists(ThreeDotMenuRobot.kt:31)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:97)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:95)
at org.mozilla.reference.browser.ui.robots.NavigationToolbarRobot$Transition.openThreeDotMenu(NavigationToolbarRobot.kt:62)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest.threeDotMenuItemsTest(ThreeDotMenuTest.kt:95)

@AndiAJ
Copy link
Contributor Author

AndiAJ commented Mar 27, 2023

Flaky 1x on 3/27 Main Firebase link

androidx.test.espresso.AmbiguousViewMatcherException: 'view.getContentDescription() is "Forward"' matches 2 views in the hierarchy:

  • [1] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
  • [2] AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=false, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
    Problem views are marked with 'MATCHES' below.

View Hierarchy:
+>PopupDecorView{id=-1, visibility=VISIBLE, width=694, height=1209, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params={(386,1658)(wrapx1209) gr=TOP START CENTER sim={state=unchanged} ty=APPLICATION_PANEL fmt=TRANSLUCENT wanim=0x7f130149 surfaceInsets=Rect(0, 0 - 0, 0) (manual)
fl=ALT_FOCUSABLE_IM SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_LAYOUT_ATTACHED_IN_DECOR
pfl=WILL_NOT_REPLACE_ON_RELAUNCH LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME
fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR}, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+->MenuView{id=-1, visibility=VISIBLE, width=694, height=1209, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+-->CardView{id=2131296668, res-name=mozac_browser_menu_cardView, visibility=VISIBLE, width=694, height=1209, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1}
|
+--->RecyclerView{id=2131296670, res-name=mozac_browser_menu_recyclerView, visibility=VISIBLE, width=656, height=1155, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=19.0, y=27.0, child-count=9}
|
+---->LinearLayout{id=-1, visibility=VISIBLE, width=656, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=3}
|
+----->AppCompatImageButton{id=-1, desc=Forward, visibility=VISIBLE, width=218, height=147, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=false, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0} MATCHES
|
+----->AppCompatImageButton{id=-1, desc=Refresh, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=218.0, y=0.0}
|
+----->AppCompatImageButton{id=-1, desc=Stop, visibility=VISIBLE, width=219, height=147, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=android.widget.LinearLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=437.0, y=0.0}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=147.0, child-count=1}
|
+----->AppCompatTextView{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Share, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=273.0, child-count=1}
|
+----->SwitchCompat{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=0.0, text=Request desktop site, input-type=0, ime-target=false, has-links=false, is-checked=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=399.0, child-count=1}
|
+----->AppCompatTextView{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add to homescreen, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=525.0, child-count=1}
|
+----->AppCompatTextView{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Find in Page, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=651.0, child-count=1}
|
+----->AppCompatTextView{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Add-ons, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=777.0, child-count=1}
|
+----->AppCompatTextView{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Synced Tabs, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=903.0, child-count=1}
|
+----->AppCompatTextView{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Report issue, input-type=0, ime-target=false, has-links=false}
|
+---->ConstraintLayout{id=-1, visibility=VISIBLE, width=656, height=126, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, layout-params=androidx.recyclerview.widget.RecyclerView$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=1029.0, child-count=1}
|
+----->AppCompatTextView{id=2131296596, res-name=label, visibility=VISIBLE, width=572, height=57, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=androidx.constraintlayout.widget.ConstraintLayout$LayoutParams@YYYYYY, tag=null, root-is-layout-requested=false, has-input-connection=false, x=42.0, y=35.0, text=Settings, input-type=0, ime-target=false, has-links=false}
The complete view hierarchy is available in artifact file 'view-hierarchy-1.txt'.
at androidx.test.espresso.AmbiguousViewMatcherException$Builder.build(AmbiguousViewMatcherException.java:6)
at androidx.test.espresso.base.DefaultFailureHandler.lambda$getAmbiguousViewMatcherExceptionTruncater$1(DefaultFailureHandler.java:5)
at androidx.test.espresso.base.DefaultFailureHandler$$ExternalSyntheticLambda0.truncateExceptionMessage(Unknown Source:2)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:5)
at androidx.test.espresso.base.ViewHierarchyExceptionHandler.handleSafely(ViewHierarchyExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:12)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.assertForwardButton(ThreeDotMenuRobot.kt:202)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobotKt.access$assertForwardButton(ThreeDotMenuRobot.kt:1)
at org.mozilla.reference.browser.ui.robots.ThreeDotMenuRobot.verifyForwardButtonExists(ThreeDotMenuRobot.kt:31)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:97)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest$threeDotMenuItemsTest$4.invoke(ThreeDotMenuTest.kt:95)
at org.mozilla.reference.browser.ui.robots.NavigationToolbarRobot$Transition.openThreeDotMenu(NavigationToolbarRobot.kt:62)
at org.mozilla.reference.browser.ui.ThreeDotMenuTest.threeDotMenuItemsTest(ThreeDotMenuTest.kt:95)

@AndiAJ
Copy link
Contributor Author

AndiAJ commented Aug 31, 2023

► 8/30 Firebase link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
eng:intermittent-test Evil test failures that only happen now-and-then and are a productivity killer eng:ui-test UI Tests
Projects
None yet
Development

No branches or pull requests

1 participant