Sure, you can automate windows from multiple domains in the same script with Playwright. But, there are a few things you need to keep in mind.
By default, Playwright downloads browsers into OS-specific cache folders. If you're working with multiple domains, you might need to change this. You can ask Playwright to download the browsers into a specific location using the
PLAYWRIGHT_BROWSERS_PATH environment variable. This ensures that the browsers can be accessed from any domain.
process.env['PLAYWRIGHT_BROWSERS_PATH'] = '/path/to/folder';
If your company uses an internal proxy that blocks direct access to public resources, you can configure Playwright to download browsers via a proxy server. Use the
HTTPS_PROXY environment variable for this. If the proxy requests get intercepted with a custom untrusted certificate authority (CA) and it causes an error while downloading the browsers, set your custom root certificates via
NODE_EXTRA_CA_CERTS environment variable before installing the browsers.
process.env['HTTPS_PROXY'] = 'http://myproxy.com:8080';
process.env['NODE_EXTRA_CA_CERTS'] = '/path/to/certificates';
You can parameterize tests in Playwright by passing environment variables through the command line or configuration files like .env files. This makes it easier to manage environment variables across different domains and ensures that tests can run against different environments like staging or production.
// .env file
Remember, while it's possible to automate windows from multiple domains in the same script with Playwright, you need to consider factors like browser download location and proxy settings. Also, parameterizing tests through configuration files or command line arguments can make managing different environments easier and more efficient.
If you still have questions, please ask a question and I will try to answer it.
Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email email@example.com.