Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Unable to find component using matcher | Fail on Ubuntu

Abierto
#254 3 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
java

Línea de trabajo

Empieza reproduciendo las pruebas GUI que fallan en Ubuntu con Java 8 u 11 y AssertJ Swing 3.17.0, utilizando la configuración de AccountSwingView y la búsqueda del panel con pestañas que se muestran en el informe. Investiga por qué no se muestra panelDisplayedAccounts cuando se ejecuta el matcher; se considera terminado cuando la prueba afectada pasa de forma fiable en Ubuntu o se documenta la limitación de plataforma restante.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi, i have to test my java swing ui with assertj swing, on my mac i have no error but on latest and previous ubuntu version, i have this issue Unable to find component using matcher (the stacktrace is at the end of this post)

Running on Java 8 or 11 same issue, assertj swing version 3.17.0
I have to set timeout before testing ui?

Here a snippet code of my tests

        @Before
	public void onSetUp() {
		MockitoAnnotations.initMocks(this);
		GuiActionRunner.execute(() -> {
			accountSwingView = new AccountSwingView();
			accountSwingView.setAccountController(accountController);
			return accountSwingView;
		});
		
		window = new FrameFixture(robot(), accountSwingView);
		window.show(); // shows the frame to test
		
		
	}

	@Test
	@GUITest
	public void testModifyPasswordButtonDelegateToController() {
		final String UPDATED_PASSWORD = "newPassword";
		List<Account> accounts = Arrays.asList(new Account("github.com", new Credential("giulio", "passgiulio")));
		accountSwingView.setListAccountTableData(accounts);

		// Verify modifyUsername called when action performed on Modify Password Button
		window.tabbedPane("tabbedPanel").selectTab(1);
		window.panel("panelDisplayedAccounts").focus();
		window.scrollPane("scrollPaneAccounts").focus();
		window.table("tableDisplayedAccounts").focus();
		window.table("tableDisplayedAccounts").selectRows(0);
		window.textBox("textFieldUpdateCell").enterText(UPDATED_PASSWORD);
		window.button("buttonModifyPassword").click();
		verify(accountController).modifyPassword(new Account("github.com", new Credential("giulio", "passgiulio")),
				UPDATED_PASSWORD);
	}

	@Test
	@GUITest
	public void testShowAccountsDisplayCorrectAccountsIntoTable() {
		Account firstAccount = new Account("github.com", new Credential("giulio", "passgiulio"));
		Account secondAccount = new Account("github.com", new Credential("remeic", "remegiulio"));
		List<Account> accountDisplayed = Arrays.asList(firstAccount, secondAccount);
		accountSwingView.showAccounts(accountDisplayed);
		window.tabbedPane("tabbedPanel").selectTab(1);
		window.panel("panelDisplayedAccounts").focus();
		List<Account> accountList = getAccountsList(window.table("tableDisplayedAccounts").contents());
		assertThat(accountList).containsAll(accountDisplayed);
	}

	@Test
	@GUITest
	public void testAccountIsModifiedShowLabelWithSuccessInfo() {
		window.tabbedPane("tabbedPanel").selectTab(1);
		window.panel("panelDisplayedAccounts").focus();
		window.label("labelOperationResult").requireDisabled();
		window.label("labelOperationResult").requireText("");
		accountSwingView.accountIsModified();
		window.label("labelOperationResult").requireEnabled();
		window.label("labelOperationResult").requireText("Account Modified!");

	}
Unable to find component using matcher org.assertj.swing.core.NameMatcher[name='panelDisplayedAccounts', type=javax.swing.JPanel, requireShowing=true].

Component hierarchy:
dev.justgiulio.passwordmanager.view.swing.AccountSwingView[name='frame12', title='Password Manager', enabled=true, visible=true, showing=true]
  javax.swing.JRootPane[]
    javax.swing.JPanel[name='null.glassPane']
    javax.swing.JLayeredPane[]
      javax.swing.JPanel[name='null.contentPane']
        javax.swing.JTabbedPane[name='tabbedPanel', selectedTabIndex=0, selectedTabTitle='Add | Generate Password', tabCount=2, tabTitles=["Add | Generate Password", "Saved Password"], enabled=true, visible=true, showing=true
          javax.swing.JPanel[name='panelGeneratePassword']
            javax.swing.JPanel[name=null]
              javax.swing.JButton[name='buttonSaveAccount', text='Save', enabled=false, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Site', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='New Account', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldSiteName', text='', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldUsername', text='', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldPassword', text='', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Username', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Password', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name='labelErrorMessage', text='', enabled=false, visible=true, showing=true]
              javax.swing.JLabel[name='labelAccountAdded', text='', enabled=false, visible=true, showing=true]
              javax.swing.JSeparator[,321,11,2x326,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,orientation=VERTICAL]
            javax.swing.JPanel[name=null]
              javax.swing.JLabel[name=null, text='Strength', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Passowrd Generator', enabled=true, visible=true, showing=true]
              javax.swing.JRadioButton[name='radioButtonLowStrength', text='Low', selected=false, enabled=true, visible=true, showing=true]
              javax.swing.JRadioButton[name='radioButtonMediumStrength', text='Medium', selected=false, enabled=true, visible=true, showing=true]
              javax.swing.JRadioButton[name='radioButtonHighStrength', text='High', selected=true, enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Length', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldGeneratedPassword', text='', enabled=true, visible=true, showing=true]
              javax.swing.JButton[name='buttonGeneratePassword', text='Generate', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Generated Password', enabled=true, visible=true, showing=true]
              javax.swing.JSlider[name='sliderPasswordLength', value=8, minimum=8, maximum=32, enabled=true, visible=true, showing=true]
          javax.swing.JPanel[name='panelDisplayedAccounts']
            javax.swing.JLabel[name=null, text='Accounts', enabled=true, visible=true, showing=false]
            javax.swing.JButton[name='buttonFindAllAccounts', text='Find All', enabled=true, visible=true, showing=false]
            javax.swing.JSeparator[,115,46,21x27,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,orientation=VERTICAL]
            javax.swing.JLabel[name=null, text='Text to FInd', enabled=true, visible=true, showing=false]
            javax.swing.JTextField[name='textFieldSearchText', text='', enabled=true, visible=true, showing=false]

javax.swing.JButton[name='buttonFindBySiteAccounts', text='Find by Site', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonFindByUsernameAccounts', text='Find By Username', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonFindByPasswordAccounts', text='Find By Password', enabled=false, visible=true, showing=false]
            javax.swing.JScrollPane[name='scrollPaneAccounts', enabled=true, visible=true, showing=false]
              javax.swing.JViewport[,1,20,928x192,layout=javax.swing.ViewportLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=25165832,maximumSize=,minimumSize=,preferredSize=,isViewSizeSet=true,lastPaintPosition=,scrollUnderway=false]
                javax.swing.JTable[name='tableDisplayedAccounts', rowCount=0, columnCount=3, enabled=true, visible=true, showing=false]
                  javax.swing.CellRendererPane[,0,0,0x0,hidden]
              javax.swing.JScrollPane$ScrollBar[name=null, value=0, blockIncrement=10, minimum=0, maximum=0, enabled=true, visible=false, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
              javax.swing.JScrollPane$ScrollBar[name=null, value=0, blockIncrement=10, minimum=0, maximum=928, enabled=true, visible=false, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
              javax.swing.JViewport[,1,1,928x19,layout=javax.swing.ViewportLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=25165832,maximumSize=,minimumSize=,preferredSize=,isViewSizeSet=true,lastPaintPosition=,scrollUnderway=false]
                javax.swing.table.JTableHeader[,0,0,928x19,alignmentX=0.0,alignmentY=0.0,border=,flags=16777544,maximumSize=,minimumSize=,preferredSize=,draggedDistance=0,reorderingAllowed=true,resizingAllowed=true,updateTableInRealTime=true]
                  javax.swing.CellRendererPane[,0,0,0x0,hidden]
            javax.swing.JButton[name='buttonDeleteAccount', text='Delete', enabled=false, visible=true, showing=false]
            javax.swing.JSeparator[,99,311,2x41,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,orientation=VERTICAL]
            javax.swing.JTextField[name='textFieldUpdateCell', text='', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonModifyUsername', text='Modify Username', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonModifyPassword', text='Modify Password', enabled=false, visible=true, showing=false]
            javax.swing.JLabel[name='labelOperationResult', text='', enabled=false, visible=true, showing=false]
        javax.swing.JLabel[name=null, text='Password Manager | Giulio Fagioli 6006222', enabled=true, visible=true, showing=true]

org.assertj.swing.exception.ComponentLookupException
Unable to find component using matcher org.assertj.swing.core.NameMatcher[name='panelDisplayedAccounts', type=javax.swing.JPanel, requireShowing=true].
Component hierarchy:
dev.justgiulio.passwordmanager.view.swing.AccountSwingView[name='frame12', title='Password Manager', enabled=true, visible=true, showing=true]
  javax.swing.JRootPane[]
    javax.swing.JPanel[name='null.glassPane']
    javax.swing.JLayeredPane[]
      javax.swing.JPanel[name='null.contentPane']
        javax.swing.JTabbedPane[name='tabbedPanel', selectedTabIndex=0, selectedTabTitle='Add | Generate Password', tabCount=2, tabTitles=["Add | Generate Password", "Saved Password"], enabled=true, visible=true, showing=true
          javax.swing.JPanel[name='panelGeneratePassword']
            javax.swing.JPanel[name=null]
              javax.swing.JButton[name='buttonSaveAccount', text='Save', enabled=false, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Site', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='New Account', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldSiteName', text='', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldUsername', text='', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldPassword', text='', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Username', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Password', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name='labelErrorMessage', text='', enabled=false, visible=true, showing=true]
              javax.swing.JLabel[name='labelAccountAdded', text='', enabled=false, visible=true, showing=true]
              javax.swing.JSeparator[,321,11,2x326,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,orientation=VERTICAL]
            javax.swing.JPanel[name=null]
              javax.swing.JLabel[name=null, text='Strength', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Passowrd Generator', enabled=true, visible=true, showing=true]
              javax.swing.JRadioButton[name='radioButtonLowStrength', text='Low', selected=false, enabled=true, visible=true, showing=true]
              javax.swing.JRadioButton[name='radioButtonMediumStrength', text='Medium', selected=false, enabled=true, visible=true, showing=true]
              javax.swing.JRadioButton[name='radioButtonHighStrength', text='High', selected=true, enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Length', enabled=true, visible=true, showing=true]
              javax.swing.JTextField[name='textFieldGeneratedPassword', text='', enabled=true, visible=true, showing=true]
              javax.swing.JButton[name='buttonGeneratePassword', text='Generate', enabled=true, visible=true, showing=true]
              javax.swing.JLabel[name=null, text='Generated Password', enabled=true, visible=true, showing=true]
              javax.swing.JSlider[name='sliderPasswordLength', value=8, minimum=8, maximum=32, enabled=true, visible=true, showing=true]
          javax.swing.JPanel[name='panelDisplayedAccounts']
            javax.swing.JLabel[name=null, text='Accounts', enabled=true, visible=true, showing=false]
            javax.swing.JButton[name='buttonFindAllAccounts', text='Find All', enabled=true, visible=true, showing=false]
            javax.swing.JSeparator[,115,46,21x27,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,orientation=VERTICAL]
            javax.swing.JLabel[name=null, text='Text to FInd', enabled=true, visible=true, showing=false]
            javax.swing.JTextField[name='textFieldSearchText', text='', enabled=true, visible=true, showing=false]

javax.swing.JButton[name='buttonFindBySiteAccounts', text='Find by Site', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonFindByUsernameAccounts', text='Find By Username', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonFindByPasswordAccounts', text='Find By Password', enabled=false, visible=true, showing=false]
            javax.swing.JScrollPane[name='scrollPaneAccounts', enabled=true, visible=true, showing=false]
              javax.swing.JViewport[,1,20,928x192,layout=javax.swing.ViewportLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=25165832,maximumSize=,minimumSize=,preferredSize=,isViewSizeSet=true,lastPaintPosition=,scrollUnderway=false]
                javax.swing.JTable[name='tableDisplayedAccounts', rowCount=0, columnCount=3, enabled=true, visible=true, showing=false]
                  javax.swing.CellRendererPane[,0,0,0x0,hidden]
              javax.swing.JScrollPane$ScrollBar[name=null, value=0, blockIncrement=10, minimum=0, maximum=0, enabled=true, visible=false, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
              javax.swing.JScrollPane$ScrollBar[name=null, value=0, blockIncrement=10, minimum=0, maximum=928, enabled=true, visible=false, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
                javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true, showing=false]
              javax.swing.JViewport[,1,1,928x19,layout=javax.swing.ViewportLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=25165832,maximumSize=,minimumSize=,preferredSize=,isViewSizeSet=true,lastPaintPosition=,scrollUnderway=false]
                javax.swing.table.JTableHeader[,0,0,928x19,alignmentX=0.0,alignmentY=0.0,border=,flags=16777544,maximumSize=,minimumSize=,preferredSize=,draggedDistance=0,reorderingAllowed=true,resizingAllowed=true,updateTableInRealTime=true]
                  javax.swing.CellRendererPane[,0,0,0x0,hidden]
            javax.swing.JButton[name='buttonDeleteAccount', text='Delete', enabled=false, visible=true, showing=false]
            javax.swing.JSeparator[,99,311,2x41,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,orientation=VERTICAL]
            javax.swing.JTextField[name='textFieldUpdateCell', text='', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonModifyUsername', text='Modify Username', enabled=false, visible=true, showing=false]
            javax.swing.JButton[name='buttonModifyPassword', text='Modify Password', enabled=false, visible=true, showing=false]
            javax.swing.JLabel[name='labelOperationResult', text='', enabled=false, visible=true, showing=false]
        javax.swing.JLabel[name=null, text='Password Manager | Giulio Fagioli 6006222', enabled=true, visible=true, showing=true]
  at dev.justgiulio.passwordmanager.view.AccountSwingViewTest.testAccountIsModifiedResetTextField(AccountSwingViewTest.java:297)
Lenguaje dominante
Java
Estrellas
121
Forks
52
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de assertj/assertj-swing

Todos los issues de assertj/assertj-swing

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.