# selectors

Selectors are patterns used to match elements in XML and HTML trees, including for CSS style binding.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Cypress Ambassador Spotlight: Sehani Chathurangi

DevFeed: [Cypress Ambassador Spotlight: Sehani Chathurangi](<https://devfeed.tech/articles/cypress-ambassador-spotlight-sehani-chathurangi-12609.md>)

Original publisher: [Read original article](<https://www.cypress.io/blog/cypress-ambassador-spotlight-sehani-chathurangi/>)

Published: 2026-08-28T16:06:18Z

Content type: article

Language: en

Sources: [Cypress Blog](<https://devfeed.tech/sources/cypress-blog.md>)

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [ambassador](<https://devfeed.tech/tags/ambassador.md>), [automation](<https://devfeed.tech/tags/automation.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [community](<https://devfeed.tech/tags/community.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [knowledge-sharing](<https://devfeed.tech/tags/knowledge-sharing.md>), [qa](<https://devfeed.tech/tags/qa.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

An Ambassador Spotlight article introduces Sehani Chathurangi, a Senior Software Quality Assurance Engineer, CypressConf speaker, and blogger. She discusses her Cypress advocacy, community knowledge sharing, custom commands, and the use of data-* attributes to create stable selectors in automated tests.

### Source excerpt

Welcome back to the Ambassador Spotlight series! Each edition, we shine a light on one of the testers and builders shaping the Cypress community and the people in it sharing their knowledge through blogs, talks, and everyday community support. Curious about the program itself? Learn more here. This week, meet Sehani Chathurangi, a Senior Software Quality Assurance Engineer, CypressConf speaker, and prolific blogger who shares real-world testing solutions with the community. Find out what drew h

## Implementing Page Objects in Playwright

DevFeed: [Implementing Page Objects in Playwright](<https://devfeed.tech/articles/implementing-page-objects-in-playwright-22420.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/implementing-page-objects-in-playwright.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-16T22:04:38Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [Playwright](<https://devfeed.tech/topics/playwright.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [test](<https://devfeed.tech/topics/test.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [bun](<https://devfeed.tech/tags/bun.md>), [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [code](<https://devfeed.tech/tags/code.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [jest](<https://devfeed.tech/tags/jest.md>), [page-object](<https://devfeed.tech/tags/page-object.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

A tutorial on using Playwright page objects to organize web application tests, centralize selectors, reduce repetition, and simplify maintenance. It compares Playwright Test and Library approaches and demonstrates setting up a login-page object.

### Source excerpt

Picture a login screen, such as The-Internet / Login. On this LoginPage, there is: a heading: Login Page a user name textbox with the label, "Username" a password textbox with the label, "Password" a login button, with the role of a button, and the name of "Login" a flash message that appears if you enter invalid credentials such as "NotAUser" and "NotAPassword". If you successfully log in with "tomsmith" and "SuperSecretPassword!, there is a SecureArea: a heading: "Secure Area" a flash message "You logged into a secure area!" a Logout button. Sure, you could interact with each web element in your test... but what if the username text box locator changes? You would have to update multiple tests every time the element changed. ... Instead, you could place it in a Page Object, something that Playwright handles well! "A page object represents a part of your web application. An e-commerce web application might have a home page, a listings page and a checkout page. Each of them can be represented by page object models. "Page objects simplify authoring by creating a higher-level API which suits your application and simplify maintenance by capturing element selectors in one place and create reusable code to avoid repetition". Using Playwright's Built-In Test Runner? Or Something Else? You may have noticed in https://playwright.dev/docs/pom that there are two different styles of page objects. One for "Test". One for "Library". Test: If you are writing actual Playwright test suites, and Playwright's built in test runner, use the Test section as a guide when creating page objects. Library: If you are integrating Playwright into an existing test framework such as Jest or Cucumber and just want browser automation, instead of having pre-built page fixtures, etc, you can use this format. Setting Up Page Objects Let's review a page object I created for the main login page on my GitLab account for the bun-create-typescript project, tests/pages/LoginPage.ts. The first thing we do is

## Maestro CLI 2.8.0: swipe from any point inside an element

DevFeed: [Maestro CLI 2.8.0: swipe from any point inside an element](<https://devfeed.tech/articles/maestro-cli-2-8-0-swipe-from-any-point-inside-an-element-22903.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/maestro-cli-2-8-0>)

Author: Manu Armani

Published: 2026-08-06T17:00:00Z

Content type: release

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Android](<https://devfeed.tech/topics/android.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [html](<https://devfeed.tech/tags/html.md>), [ios](<https://devfeed.tech/tags/ios.md>), [junit](<https://devfeed.tech/tags/junit.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [release](<https://devfeed.tech/tags/release.md>), [reports](<https://devfeed.tech/tags/reports.md>), [selectors](<https://devfeed.tech/tags/selectors.md>)

### AI overview

Maestro CLI 2.8.0 adds swipes from chosen points within elements, variables for permissions and screenshot thresholds, improved selector retries, bounded Android emulator boot time, faster and more targeted locale handling, broader iOS device enumeration, and reliability fixes for Maestro Cloud uploads and reports.

### Source excerpt

Maestro CLI 2.8.0 adds swipes that start from a chosen point inside an element, variables in permissions and screenshot thresholds, and reliability fixes across Maestro Cloud uploads and reports.

## Give your eve agent a browser

DevFeed: [Give your eve agent a browser](<https://devfeed.tech/articles/give-your-eve-agent-a-browser-953.md>)

Original publisher: [Read original article](<https://vercel.com/changelog/give-your-eve-agent-a-browser>)

Author: Chris Tate

Published: 2026-08-04T04:00:00Z

Content type: release

Language: en

Sources: [Vercel News](<https://devfeed.tech/sources/vercel-news.md>)

Topics: [Agent Browser](<https://devfeed.tech/topics/agent-browser.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [Chromium](<https://devfeed.tech/topics/chromium.md>), [browser](<https://devfeed.tech/topics/browser.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Template](<https://devfeed.tech/topics/template.md>), [Forms](<https://devfeed.tech/topics/forms.md>), [Network](<https://devfeed.tech/topics/network.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [auth](<https://devfeed.tech/tags/auth.md>), [browser](<https://devfeed.tech/tags/browser.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [extension](<https://devfeed.tech/tags/extension.md>), [forms](<https://devfeed.tech/tags/forms.md>), [network](<https://devfeed.tech/tags/network.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [sandbox](<https://devfeed.tech/tags/sandbox.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tools](<https://devfeed.tech/tags/tools.md>), [vercel](<https://devfeed.tech/tags/vercel.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Vercel announces an eve extension that adds agent-browser capabilities to eve agents. It enables browser navigation, content inspection, clicking, form filling, screenshots, and console and network inspection inside the agent sandbox, with selector-based interaction and controls for isolation, domains, credentials, approvals, and tool access.

### Source excerpt

Your eve agent can now navigate the web like a human with agent-browser. The @agent-browser/eve extension gives any eve agent a full set of browser tools: navigate pages, read content, click, fill forms, take screenshots, and inspect console and network activity. Everything runs inside the agent's sandbox. Install the extension: Then mount it under agent/extensions/: Your agent gets namespaced tools like browser__navigate, browser__snapshot, browser__click, browser__fill, and browser__screenshot. Snapshot refs such as [ref=e12] become @e12 selectors, so the agent can inspect a page, then act on exactly what it saw. The extension includes: Sandbox isolation: Chromium and agent-browser run in the eve sandbox, not your app. Pre-install them in your sandbox template so sessions start warm, or let the extension install them on first use. Domain allowlist: Restrict navigation and subresources with allowedDomains, and control output size, screenshot handling, proxy use, and session naming through extension options. Credential protection: Cookie, storage, and saved-auth-state commands are never exposed to the model. Use eve extension overrides to disable tools, require approvals, or add app-specific guarded tools. See a complete Next.js eve app with the extension mounted in the example, or read the documentation to get started. Read more

## Meet Test Companion: AI That Helps QA Teams Keep Pace with Modern Development

DevFeed: [Meet Test Companion: AI That Helps QA Teams Keep Pace with Modern Development](<https://devfeed.tech/articles/meet-test-companion-ai-that-helps-qa-teams-keep-pace-with-modern-development-12629.md>)

Original publisher: [Read original article](<https://www.browserstack.com/blog/meet-test-companion-ai-that-helps-qa-teams-keep-pace-with-modern-development/>)

Author: Rajrupa Roychowdhury

Published: 2026-07-29T13:05:29Z

Content type: article

Language: en

Sources: [BrowserStack Blog](<https://devfeed.tech/sources/browserstack-blog.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>), [MCP Server](<https://devfeed.tech/topics/mcp-server.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [API](<https://devfeed.tech/topics/api.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [api](<https://devfeed.tech/tags/api.md>), [ide](<https://devfeed.tech/tags/ide.md>), [logs](<https://devfeed.tech/tags/logs.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [qa](<https://devfeed.tech/tags/qa.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [test-companion](<https://devfeed.tech/tags/test-companion.md>), [testing](<https://devfeed.tech/tags/testing.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

The article introduces BrowserStack Test Companion, an agentic AI test-automation tool embedded in the IDE. It is designed to help SDETs and QA teams author, execute, debug, and maintain web and mobile tests faster while preserving their existing frameworks, tools, standards, and governance. Described capabilities include generating functional, visual, accessibility, and API tests; debugging failures; analyzing logs; suggesting fixes; repairing brittle selectors and assertions; and running exploratory testing.

### Source excerpt

Test Companion builds on BrowserStack's growing AI portfolio, bringing intelligent testing directly into the IDE. Combined with our BrowserStack MCP Server and specialised AI agents, it helps QA teams move faster without changing the way they already work.

## Cypress Ambassador Spotlight: Boris Selivanov

DevFeed: [Cypress Ambassador Spotlight: Boris Selivanov](<https://devfeed.tech/articles/cypress-ambassador-spotlight-boris-selivanov-12603.md>)

Original publisher: [Read original article](<https://www.cypress.io/blog/cypress-ambassador-spotlight-boris-selivanov/>)

Published: 2026-07-24T13:43:32Z

Content type: opinion

Language: en

Sources: [Cypress Blog](<https://devfeed.tech/sources/cypress-blog.md>)

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [race-condition](<https://devfeed.tech/topics/race-condition.md>), [Network](<https://devfeed.tech/topics/network.md>), [npm](<https://devfeed.tech/topics/npm.md>)

Tags: [ambassador](<https://devfeed.tech/tags/ambassador.md>), [automation](<https://devfeed.tech/tags/automation.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [flaky](<https://devfeed.tech/tags/flaky.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [npm](<https://devfeed.tech/tags/npm.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This Cypress Ambassador Spotlight presents Boris Selivanov's advice on sharing reusable testing patterns, choosing stable selectors, and building scalable test automation. It highlights cy.intercept() for controlling network traffic and reducing flaky tests, recommends retry-ability and aliases instead of arbitrary cy.wait(ms), and suggests starting with a real application test after installing Cypress.

### Source excerpt

What motivates you to be a Cypress Ambassador? I see being an Ambassador as the ultimate form of asynchronous collaboration. My goal is to share things that move the needle for other engineers. By comparing how different teams solve the same testing problems, we can turn isolated project victories into shared wins. How do you currently help others that are either using Cypress or interested in using Cypress? I'm the person teammates ping when a test goes flaky or they're not sure how to appro

## Cypress Ambassador Spotlight: Javier Flores

DevFeed: [Cypress Ambassador Spotlight: Javier Flores](<https://devfeed.tech/articles/cypress-ambassador-spotlight-javier-flores-12604.md>)

Original publisher: [Read original article](<https://www.cypress.io/blog/cypress-ambassador-spotlight-javier-flores/>)

Published: 2026-07-16T21:08:08Z

Content type: opinion

Language: en

Sources: [Cypress Blog](<https://devfeed.tech/sources/cypress-blog.md>)

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Cucumber](<https://devfeed.tech/topics/cucumber.md>), [Bootcamp](<https://devfeed.tech/topics/bootcamp.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Automation](<https://devfeed.tech/topics/automation.md>)

Tags: [ambassador](<https://devfeed.tech/tags/ambassador.md>), [automation](<https://devfeed.tech/tags/automation.md>), [community](<https://devfeed.tech/tags/community.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [flaky](<https://devfeed.tech/tags/flaky.md>), [learning](<https://devfeed.tech/tags/learning.md>), [projects](<https://devfeed.tech/tags/projects.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This interview highlights Javier Flores's work as a Cypress Ambassador, QA Automation Lead, mentor, and bootcamp instructor. It discusses practical Cypress testing, Cucumber exercises, interactive time-travel debugging, automatic waiting, deterministic tests, stable selectors, and beginner-friendly end-to-end testing practices.

### Source excerpt

What motivates you to be a Cypress Ambassador? I want to help grow a strong, practical testing community around Cypress. I show people working code and let them build confidence by doing. That's the same philosophy behind the bootcamp I run: everyone leaves with their own repo, not just notes. How do you currently help others that are either using Cypress or interested in using Cypress? I mentor teammates and collaborate closely with developers and product owners to improve testing practices

## DOM State Clarity With cy.depends Command

DevFeed: [DOM State Clarity With cy.depends Command](<https://devfeed.tech/articles/dom-state-clarity-with-cy-depends-command-28888.md>)

Original publisher: [Read original article](<https://glebbahmutov.com/blog/dom-state-clarity-with-cy-depends/>)

Author: Gleb Bahmutov

Published: 2026-05-22T04:00:00Z

Content type: tutorial

Language: en

Sources: [Gleb Bahmutov](<https://devfeed.tech/sources/gleb-bahmutov.md>)

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [errors](<https://devfeed.tech/tags/errors.md>), [network](<https://devfeed.tech/tags/network.md>), [process](<https://devfeed.tech/tags/process.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

This tutorial shows how to use the cy.depends query command from the cypress-if plugin to handle multiple possible DOM outcomes in Cypress tests. It demonstrates waiting for success and error selectors simultaneously and performing an action based on the first selector matched.

### Source excerpt

Imagine a simple web application scenario: you click on a button. App tries to load some data. The data might load, or the backend might

## New Maestro Studio

DevFeed: [New Maestro Studio](<https://devfeed.tech/articles/new-maestro-studio-22915.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/new-maestro-studio>)

Author: Manu Armani

Published: 2026-04-21T22:36:00Z

Content type: release

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [autocomplete](<https://devfeed.tech/tags/autocomplete.md>), [cli](<https://devfeed.tech/tags/cli.md>), [developers](<https://devfeed.tech/tags/developers.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [meta](<https://devfeed.tech/tags/meta.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

Maestro announces a redesigned Maestro Studio desktop app for mobile UI testing. The release adds contextual autocomplete for commands, arguments, and selectors, emulator-assisted test creation, and more robust device connections, while existing tests continue to work without migration.

### Source excerpt

Maestro Studio is the desktop app for mobile UI testing. Now completely redesigned, with contextual autocomplete.

## DAST without disruption: Burp Suite DAST winter update 2025

DevFeed: [DAST without disruption: Burp Suite DAST winter update 2025](<https://devfeed.tech/articles/dast-without-disruption-burp-suite-dast-winter-update-2025-7698.md>)

Original publisher: [Read original article](<https://portswigger.net/blog/burp-suite-dast-winter-update-2025>)

Author: Rob Samuels

Published: 2025-12-11T13:09:30Z

Content type: release

Language: en

Sources: [PortSwigger Blog](<https://devfeed.tech/sources/portswigger-blog.md>)

Topics: [Application Security](<https://devfeed.tech/topics/application-security.md>), [Security](<https://devfeed.tech/topics/security.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [API](<https://devfeed.tech/topics/api.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Postman](<https://devfeed.tech/topics/postman.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [CSS](<https://devfeed.tech/topics/css.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [automation](<https://devfeed.tech/tags/automation.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [responses](<https://devfeed.tech/tags/responses.md>), [security](<https://devfeed.tech/tags/security.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [troubleshooting](<https://devfeed.tech/tags/troubleshooting.md>), [ui](<https://devfeed.tech/tags/ui.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

A winter 2025 update to Burp Suite DAST adds scan freeze windows, improved site and folder management, editable recorded login flows, real-time authentication diagnostics, XPath and CSS session checks, and imports for Postman collections with environment variables. The changes aim to make automated application and API security scanning more reliable and easier to manage at scale.

### Source excerpt

AppSec teams are under constant pressure to secure fast-moving applications without slowing anything down. But scanning windows, fragile authentication, and sprawling API estates often get in the way

## Tell Copilot Where To Find Test Selectors

DevFeed: [Tell Copilot Where To Find Test Selectors](<https://devfeed.tech/articles/tell-copilot-where-to-find-test-selectors-28896.md>)

Original publisher: [Read original article](<https://glebbahmutov.com/blog/tell-copilot-where-to-find-test-selectors/>)

Author: Gleb Bahmutov

Published: 2025-09-22T04:00:00Z

Content type: tutorial

Language: en

Sources: [Gleb Bahmutov](<https://devfeed.tech/sources/gleb-bahmutov.md>)

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [GitHub Copilot](<https://devfeed.tech/topics/github-copilot.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [copilot](<https://devfeed.tech/tags/copilot.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [guide](<https://devfeed.tech/tags/guide.md>), [products](<https://devfeed.tech/tags/products.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [vscode](<https://devfeed.tech/tags/vscode.md>)

### AI overview

This tutorial explains how to use GitHub Copilot instruction files to help generate more precise Cypress end-to-end tests. It recommends pointing Copilot to application source files so it can identify stable, test-specific selectors instead of guessing generic or misleading selectors.

### Source excerpt

I have shown how to use Copilot instructions fil

## Automating Apple Maps End-to-End Tests with Maestro

DevFeed: [Automating Apple Maps End-to-End Tests with Maestro](<https://devfeed.tech/articles/automating-apple-maps-dead-simple-e2e-testing-with-maestro-22882.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/automating-apple-maps-simple-e2e-testing-with-maestro>)

Author: Leland Takamine

Published: 2025-09-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [apple](<https://devfeed.tech/tags/apple.md>), [e2e-testing](<https://devfeed.tech/tags/e2e-testing.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A step-by-step tutorial showing how to automate an Apple Maps flow with Maestro. The example uses a YAML test to search for Apple HQ, explore Look Around, navigate dynamically, and verify UI details with selectors and assertions.

### Source excerpt

Automate Apple Maps with Maestro. A step-by-step E2E test in simple YAML - readable, reliable, and flake-free.

## Case Insensitive CSS Attribute Selector

DevFeed: [Case Insensitive CSS Attribute Selector](<https://devfeed.tech/articles/case-insensitive-css-attribute-selector-37474.md>)

Original publisher: [Read original article](<https://davidwalsh.name/css-attribute-case>)

Author: David Walsh

Published: 2024-06-19T11:31:27Z

Content type: tutorial

Language: en

Sources: [David Walsh](<https://devfeed.tech/sources/david-walsh.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [css-quick-tips](<https://devfeed.tech/tags/css-quick-tips.md>), [quick-tips](<https://devfeed.tech/tags/quick-tips.md>), [selectors](<https://devfeed.tech/tags/selectors.md>)

### AI overview

This article explains how to use the case-insensitivity flag in CSS attribute selectors to match attribute values without regard to letter case. It notes that the technique has limited use cases and should be applied sparingly.

### Source excerpt

CSS selectors never cease to amaze me in how powerful they can be in matching complex patterns. Most of that flexibility is in parent/child/sibling relationships, very seldomly in value matching. Consider my surprise when I learned that CSS allows matching attribute values regardless off case! Adding a {space}i to the attribute selector brackets will make [...] The post Case Insensitive CSS Attribute Selector appeared first on David Walsh Blog.

## Bootstrap 5.3.3

DevFeed: [Bootstrap 5.3.3](<https://devfeed.tech/articles/bootstrap-5-3-3-22293.md>)

Original publisher: [Read original article](<https://blog.getbootstrap.com/2024/02/20/bootstrap-5-3-3/>)

Author: Julien Déramond

Published: 2024-02-20T15:22:00Z

Content type: release

Language: en

Sources: [Bootstrap.com](<https://devfeed.tech/sources/bootstrap-com.md>)

Topics: [Bootstrap](<https://devfeed.tech/topics/bootstrap.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [Sass](<https://devfeed.tech/topics/sass.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Vite](<https://devfeed.tech/topics/vite.md>)

Tags: [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [css](<https://devfeed.tech/tags/css.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [release](<https://devfeed.tech/tags/release.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [vite](<https://devfeed.tech/tags/vite.md>)

### AI overview

Bootstrap v5.3.3 is a release focused on bug fixes, documentation improvements, and color-mode enhancements. It updates Sass variable imports, fixes a selector-engine regression involving multiple IDs, adjusts color-mode behavior and documentation, and includes miscellaneous component, validation, accessibility, and RTL fixes.

### Source excerpt

Bootstrap v5.3.3 is here with bug fixes, documentation improvements, and more follow-up enhancements for color modes. Keep reading for the highlights! Highlights Fixed a breaking change introduced with color modes where it was required to manually import variables-dark.scss when building Bootstrap with Sass. Now, _variables.scss will automatically import _variables-dark.scss. If you were already importing _variables-dark.scss manually, you should keep doing it as it won't break anything and will be the way to go in v6. Fixed a regression in the selector engine that wasn't able to handle multiple IDs anymore. Color modes Badges now use the .text-bg-* text utilities to be certain that the text is always readable (especially when the customized colors are different in light and dark modes). Fixed our color-modes.js script to handle the case where the OS is set to light mode and the auto color mode is used on the website. If you copied the script from our docs, you should apply this change to your own script. Fixed color schemes description in the color modes documentation to show that color-scheme() only accept light and dark values as parameters. Miscellaneous Allowed <dl>, <dt> and <dd> in the sanitizer. Dropped evenly items distribution for modal and offcanvas headers. Fixed the accordion CSS selectors to avoid inheritance issues when nesting accordions. Fixed the focus box-shadow for the validation stated form controls. Fixed the focus ring on focused checked buttons. Fixed the product example mobile navbar toggler. Changed the RTL processing of carousel control icons. Docs Dropped unnecessary right margin for example code blocks. Fixed emphasis text utilities usage in background utilities examples section. Added an technical explanation on how to render an accordion expanded by default. Changed Vite config path import in Vite guide. Enhanced the card image description of the .card-img-* classes. Mentioned shift-color() function in the Sass customization page among

## MDN doc updates: CSS selectors & media queries, WebGPU & WebTransport APIs, Progressive web apps

DevFeed: [MDN doc updates: CSS selectors & media queries, WebGPU & WebTransport APIs, Progressive web apps](<https://devfeed.tech/articles/mdn-doc-updates-css-selectors-media-queries-webgpu-webtransport-apis-progressive-web-apps-4099.md>)

Original publisher: [Read original article](<https://developer.mozilla.org/en-US/blog/mdn-docs-june-2023/>)

Author: dipika-bhattacharya

Published: 2023-06-13T00:00:00Z

Content type: article

Language: en

Sources: [MDN Blog](<https://devfeed.tech/sources/mdn-blog.md>)

Topics: [Web Development](<https://devfeed.tech/topics/web-development.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Media Queries](<https://devfeed.tech/topics/media-queries.md>), [Web platform](<https://devfeed.tech/topics/web-platform.md>), [webgpu](<https://devfeed.tech/topics/webgpu.md>), [ECMAScript](<https://devfeed.tech/topics/ecmascript.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [css](<https://devfeed.tech/tags/css.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [media](<https://devfeed.tech/tags/media.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [web](<https://devfeed.tech/tags/web.md>), [webgpu](<https://devfeed.tech/tags/webgpu.md>)

### AI overview

MDN highlights documentation updates covering CSS selector syntax, expanded CSS media-query support, WebGPU and WebTransport APIs, ECMAScript modules, and progressive web apps. The article also notes browser-specific support, including new or experimental features in Firefox and Safari.

### Source excerpt

Discover CSS :lang(), experimental media queries, manipulating graphics with WebGPU, client-server communication with WebTransport, ECMAScript module support, and more.

## Astro 2.4

DevFeed: [Astro 2.4](<https://devfeed.tech/articles/astro-2-4-3164.md>)

Original publisher: [Read original article](<https://astro.build/blog/astro-240/>)

Author: Matthew Phillips

Published: 2023-05-04T00:00:00Z

Content type: release

Language: en

Sources: [The Astro Blog](<https://devfeed.tech/sources/the-astro-blog.md>)

Topics: [Astro](<https://devfeed.tech/topics/astro.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [astro](<https://devfeed.tech/tags/astro.md>), [css](<https://devfeed.tech/tags/css.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [features](<https://devfeed.tech/tags/features.md>), [ssr](<https://devfeed.tech/tags/ssr.md>)

### AI overview

Astro 2.4 introduces stronger opt-in CSS scoping, component improvements including an upgraded Shiki integration, server-side rendering support for sitemaps, experimental middleware, and experimental CSS inlining.

### Source excerpt

Stronger CSS scoping - Code component improvements - Middleware - CSS inlining - More!

## Multi-module Lint Rules Follow Up: Suppressions ☠

DevFeed: [Multi-module Lint Rules Follow Up: Suppressions ☠](<https://devfeed.tech/articles/multi-module-lint-rules-follow-up-suppressions-26168.md>)

Original publisher: [Read original article](<https://zarah.dev/2022/02/15/deprecated-suppress.html>)

Author: Zarah Dominguez

Published: 2022-02-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Zarah Dominguez](<https://devfeed.tech/sources/zarah-dominguez.md>)

Topics: [modules](<https://devfeed.tech/topics/modules.md>), [XML](<https://devfeed.tech/topics/xml.md>), [test](<https://devfeed.tech/topics/test.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [errors](<https://devfeed.tech/tags/errors.md>), [lint](<https://devfeed.tech/tags/lint.md>), [module](<https://devfeed.tech/tags/module.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

A follow-up tutorial on adding suppression checks to a multi-module Lint rule that detects deprecated colours in XML files. It explains checking suppression before reporting issues and adding tests for suppressed usages in widgets and root layout elements.

### Source excerpt

It has been a hot minute since I posted about writing multi-module Lint rules so it's time for a follow up. Today's topic: suppressions! A quick recap of where we are:

## Updated Pluralsight Course - Configuring and Managing Kubernetes Storage and Scheduling

DevFeed: [Updated Pluralsight Course - Configuring and Managing Kubernetes Storage and Scheduling](<https://devfeed.tech/articles/updated-pluralsight-course-configuring-and-managing-kubernetes-storage-and-scheduling-17539.md>)

Original publisher: [Read original article](<https://www.nocentino.com/posts/2022-01-11-updated-pluralsight-course-configuring-managing-kubernetes-storage-scheduling/>)

Author: Anthony Nocentino

Published: 2022-01-11T00:00:00Z

Content type: release

Language: en

Sources: [Kubernetes on Anthony Nocentino's Blog](<https://devfeed.tech/sources/kubernetes-on-anthony-nocentino-s-blog.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Pluralsight](<https://devfeed.tech/topics/pluralsight.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [data](<https://devfeed.tech/topics/data.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [administration](<https://devfeed.tech/tags/administration.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [container](<https://devfeed.tech/tags/container.md>), [containers](<https://devfeed.tech/tags/containers.md>), [course](<https://devfeed.tech/tags/course.md>), [data](<https://devfeed.tech/tags/data.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [developer](<https://devfeed.tech/tags/developer.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [learning](<https://devfeed.tech/tags/learning.md>), [pluralsight](<https://devfeed.tech/tags/pluralsight.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [storage](<https://devfeed.tech/tags/storage.md>), [training](<https://devfeed.tech/tags/training.md>)

### AI overview

An updated Pluralsight course teaches Kubernetes storage, configuration, and Pod scheduling. It covers persistent storage, environment variables, Secrets, ConfigMaps, provisioning, scheduling controls, and updated techniques for tagging and pushing images with ctr.

### Source excerpt

My updated course "Configuring and Managing Kubernetes Storage and Scheduling" is now available on Pluralsight here! If you want to learn about the course, check out the trailer here, or if you're going to dive right in, check it out here! This course teaches you how to decouple state and configuration from your Pod's lifecycle using persistent storage and configuration as data and how to schedule Pods to Nodes in your Kubernetes cluster.

## Redux to Apollo: Data Access Patterns

DevFeed: [Redux to Apollo: Data Access Patterns](<https://devfeed.tech/articles/redux-to-apollo-data-access-patterns-23494.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/redux-to-apollo-data-access-patterns>)

Author: Dan Reynolds

Published: 2021-01-29T11:30:04Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [apollo-client](<https://devfeed.tech/topics/apollo-client.md>), [Redux](<https://devfeed.tech/topics/redux.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [migration](<https://devfeed.tech/topics/migration.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [apollo-client](<https://devfeed.tech/tags/apollo-client.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [migration](<https://devfeed.tech/tags/migration.md>), [redux](<https://devfeed.tech/tags/redux.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [state-management](<https://devfeed.tech/tags/state-management.md>)

### AI overview

This article describes NerdWallet's migration from a React-Redux codebase to Apollo for client-side state management. It focuses on implementing data access, filtering, transformation, side-effect handling, and Redux-selector-like patterns with GraphQL and Apollo Client.

### Source excerpt

As part of NerdWallet's migration from our React-Redux code base to client state management using Apollo, we've been exploring how to effectively implement data access patterns, side-effects handling, and other aspects of client state management using GraphQL and Apollo Client. This first post examines how we accomplish effective data access, filtering and transformation on the client like we currently do using Redux selectors.

## Kotlin Mumbai: Dissecting Coroutines

DevFeed: [Kotlin Mumbai: Dissecting Coroutines](<https://devfeed.tech/articles/kotlin-mumbai-dissecting-coroutines-28378.md>)

Original publisher: [Read original article](<https://siddroid.com/post/post-dissecting-coroutines-kotlin-mumbai-nov-2020-siddhesh-patil-siddroid/>)

Author: Siddhesh Patil

Published: 2020-11-28T09:48:16Z

Content type: article

Language: en

Sources: [Sid Patil - Android Engineer and Kotlin Advocate](<https://devfeed.tech/sources/sid-patil-android-engineer-and-kotlin-advocate.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [best-android-developer-groups-in-india](<https://devfeed.tech/tags/best-android-developer-groups-in-india.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-communities-in-mumbai](<https://devfeed.tech/tags/developer-communities-in-mumbai.md>), [event](<https://devfeed.tech/tags/event.md>), [flow](<https://devfeed.tech/tags/flow.md>), [google-developer-experts](<https://devfeed.tech/tags/google-developer-experts.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-mumbai](<https://devfeed.tech/tags/kotlin-mumbai.md>), [kotlin-user-group-mumbai](<https://devfeed.tech/tags/kotlin-user-group-mumbai.md>), [kug](<https://devfeed.tech/tags/kug.md>), [learnings](<https://devfeed.tech/tags/learnings.md>), [mohit-sarveiya](<https://devfeed.tech/tags/mohit-sarveiya.md>), [mohit-sarveiya-gde-for-kotlin](<https://devfeed.tech/tags/mohit-sarveiya-gde-for-kotlin.md>), [q-a](<https://devfeed.tech/tags/q-a.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [talk](<https://devfeed.tech/tags/talk.md>), [using-cooroutines-in-kotlin](<https://devfeed.tech/tags/using-cooroutines-in-kotlin.md>)

### AI overview

An overview of a Kotlin Mumbai talk on Kotlin coroutines, covering how coroutines work, the coroutines library, Flows, Channels, shared state, selectors, and actors, followed by a question-and-answer session.

### Source excerpt

Mohit Sarveiya walks us through using coroutines in Kotlin and how they work under the hood. In this talk, we will explore basic to advanced features provided by the coroutines library.

## Access Angular Material's MatSelect Options Panel Container

DevFeed: [Access Angular Material's MatSelect Options Panel Container](<https://devfeed.tech/articles/access-angular-material-s-matselect-options-panel-container-21368.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2020/06/access-material-select-options/>)

Published: 2020-09-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [selectors](<https://devfeed.tech/topics/selectors.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [angular-material](<https://devfeed.tech/tags/angular-material.md>), [component](<https://devfeed.tech/tags/component.md>), [selectors](<https://devfeed.tech/tags/selectors.md>)

### AI overview

This tutorial explains how to programmatically access Angular Material's MatSelect options panel from a directive. It explains why the rendered options are not child elements of MatSelect in the DOM and recommends using the exposed panel reference instead of broad global DOM queries.

### Source excerpt

Lorem ipsum dolor sit amet

## ::part and ::theme, an ::explainer

DevFeed: [::part and ::theme, an ::explainer](<https://devfeed.tech/articles/part-and-theme-an-explainer-35534.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/part-theme-explainer/>)

Author: Monica Dinculescu

Published: 2017-12-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Web Components](<https://devfeed.tech/topics/web-components.md>), [CSS](<https://devfeed.tech/topics/css.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [web-standards](<https://devfeed.tech/topics/web-standards.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [css](<https://devfeed.tech/tags/css.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [explainer](<https://devfeed.tech/tags/explainer.md>), [polyfill](<https://devfeed.tech/tags/polyfill.md>), [properties](<https://devfeed.tech/tags/properties.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

This explainer reviews proposals for styling and theming Shadow DOM components, including shadow-piercing selectors, custom CSS properties, and the proposed ::part and ::theme approaches. It notes that the relevant specification was not yet final and that no reliable polyfill was available at the time.

### Source excerpt

Updated May 18, 2020 (get it? :: ? I made a funny) Shadow DOM is a spec that gives you DOM and style encapsulation. This is great for reusable web components, as it reduces the ability of these components' styles getting accidentally stomped over (the old "I have a class called "button" and you have a class called "button", now we both look busted" problem), but it adds a barrier for styling and theming these components deliberately. Since a lot has changed since the last time I talked about styling the Shadow DOM, I wanted to give you a quick update about what new specs were in the works! Please note that this spec isn't quite final, which means that a) the syntax and capabilities will likely change and b) there isn't a polyfill you can use for realsies. --- Ok, so. When talking about styling a component, there are usually two different problems you might want to solve: 💇 Styling: I am using a third-party <fancy-button> element on my site and I want this one to be blue 🎨 Theming: I am using many third-party elements on my site, and some of them have a <fancy-button>; I want all the <fancy-button>s to be blue. Here's almost everything I know on this topic. A trip through time There have been several previous attempts at solving this, some more successful than others. If you've read my last post about this, you're already caught up. If you haven't, here's the deets: First came :shadow and /deep/ (which have since been deprecated, and removed as of Chrome 60). These were shadow-piercing selectors that allowed you to target any node in an element's Shadow DOM. Apart from being terribad for performance, they also required the user of an element to be intimately familiar with some random element's implementation, which was unlikely and lead to them just breaking the whole element by accident Custom properties allow you to create custom CSS properties that can be used throughout an app. In particular, they pierce the shadow boundary, which means they can be used for styli

## jQuery/CSS Style Selectors for Codename One

DevFeed: [jQuery/CSS Style Selectors for Codename One](<https://devfeed.tech/articles/jquery-css-style-selectors-for-codename-one-19345.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/jquery-css-style-selectors-for-cn1/>)

Author: Steve Hannah

Published: 2017-03-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [selectors](<https://devfeed.tech/topics/selectors.md>), [jQuery](<https://devfeed.tech/topics/jquery.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [library](<https://devfeed.tech/tags/library.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial introduces Codename One's ComponentSelector class, which is heavily influenced by jQuery. It explains CSS-like component selection, a fluent API, set-based operations, and effects such as fading and sliding components.

### Source excerpt

The ComponentSelector class is a new class that brings the power of jQuery to Codename One. While it is not actually jQuery, it is heavily influenced by it. If you're not familiar with jQuery, here is the 10 second intro. jQuery is a javascript library, created by John Resig in 2006, that has become a staple of browser-based UI development. As of March 2017, over 70% of web sites are using jQuery. The initial problem that jQuery solved was browser incompatibility issues. It provided a consistent API for most useful DOM methods so that the developer didn't have to spend all their days and nights fighting with browser compatibility issues. In a way, it did for Javascript, what Codename One does for mobile apps.

## Rendering ONLY Children in XHP

DevFeed: [Rendering ONLY Children in XHP](<https://devfeed.tech/articles/rendering-only-children-in-xhp-22041.md>)

Original publisher: [Read original article](<https://codebeforethehorse.tumblr.com/post/80902252142>)

Author: Codebeforethehorse

Published: 2014-03-27T19:54:00Z

Content type: tutorial

Language: en

Sources: [Stefan Parker](<https://devfeed.tech/sources/stefan-parker.md>)

Topics: [ui](<https://devfeed.tech/topics/ui.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [jQuery](<https://devfeed.tech/topics/jquery.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [selectors](<https://devfeed.tech/tags/selectors.md>), [ui](<https://devfeed.tech/tags/ui.md>), [xhp](<https://devfeed.tech/tags/xhp.md>)

### AI overview

This tutorial explains how to use XHP rendering priority and :x:primitive to render only the augmented children of an element. It demonstrates the technique with Facebook news feed lists that add class names to children before appending them through an AJAX request.

### Source excerpt

My last post, Rendering NULL in XHP, surprised a bunch of people by the use of extending :x:primitive to handle children rendering before the parent's rendering. So I thought I'd quickly discuss another useful trick you can do by extending :x:primitive, this one deals with getting just the children from elements that alter their children before rendering. There are a few cases where you want this to happen. For instance, Facebook has an element <ui:list>, which allows engineers to make lists with pre-defined spacing and border colors. The news feed is one of these lists. The problem we had was that we needed <ui:list> to add class names to its children because we couldn't use CSS selectors to target direct children (specifically, the > selector, which IE6 didn't support). So we had to add class names like .uiListSmallVerticalPadding to every child element. Keeping this logic inside <ui:list> meant we only needed to specify the spacing once and it would remain uniform over the whole list. This works fine until we need to append more children through an AJAX request. When we load more news feed stories we need to create another <ui:list>, render it, but then remove the root element and only append its children to the existing news feed. :x:primitive to the rescue! We can use the rendering priority of :x:primitive to create an element that will let its child render first (adding class names to its children) and then remove the root. class :render-children extends :x:primitive { children (:xhp); protected function stringify() { $xhp = <x:frag> {$this->getFirstChild()->getChildren()} </x:frag>; return :xhp::renderChild($xhp); } } Now we're left with the augmented children to append to the existing list. Easy peasy.

[Next page](<https://devfeed.tech/topics/selectors.md?cursor=WyIyMDE0LTAzLTI3VDE5OjU0OjAwKzAwOjAwIiwgIjM1ZDRmYzI1LWE1YzQtNGYwMy04YmJhLWYwMzQ3ZWVhOTMzYyJd>)