Uma página HTML é essencialmente uma hierarquia de nós aninhados. Por exemplo, posso ter um painel que exibe uma caixa de diálogo contendo um formulário e, dentro desse formulário, um botão de confirmação.
Ao localizar esse botão usando o Playwright, eu poderia criar uma cascata de filtros para localizar o botão no final da hierarquia de nós. Alternativamente, eu poderia selecionar o botão diretamente sem precisar saber que ele está aninhado em um formulário, que está dentro de uma caixa de diálogo e assim por diante.
Qual abordagem devo usar? Devo garantir a localização do botão filtrando os nós ou devo mantê-lo simples e selecioná-lo diretamente?
Quais são as vantagens de cada um?
O dramaturgo recomenda o uso de localizadores. Por exemplo, você filtra seus nós, uma simples mudança no DOM pode atrapalhar seu caminho. Ao usar localizadores, será a maneira mais fácil de endereçar seu botão diretamente.
Quando você deseja localizar um elemento que existe mais de um, mas conhece alguns critérios para restringir sua posição, você pode usar
filter()
a filtragemAtualizar:
Você também pode encadear seus localizadores.
No entanto, evite usar
css
ouxpath
use-os somente quando necessário. Especialmentexpath
pode ser facilmente quebrado.No seu caso, você tem mais de um formulário (caixa de diálogo) e cada formulário possui o botão,
Confirmation
então eu localizaria o formulário e anexaria o botão a ele. por exemplogetByRole('dialog').getByRole('button', {name: 'Confirmation'})