> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Come ospitare un'applicazione Selenium su Square Cloud

> Guida completa per automatizzare la navigazione web utilizzando Selenium e Chromium su Square Cloud con implementazione professionale e configurazioni avanzate.

## Sviluppo professionale di script Selenium

Per implementare un'automazione web efficiente su Square Cloud, è essenziale predisporre un ambiente di sviluppo adeguato e seguire le best practice di configurazione.

### Prerequisiti tecnici essenziali

* **Python e pip**: Assicurati di avere **Python** e **pip** installati sul tuo sistema. Se non li hai, scaricali dal [sito ufficiale di Python](https://www.python.org/) e dal [sito ufficiale di Pip](https://pypi.org/).
* **Account Square Cloud**: Crea il tuo account tramite la [pagina di registrazione](https://squarecloud.app/it/signup), usando il tuo indirizzo email per la registrazione.
* **Piano a pagamento attivo**: Un piano a pagamento è necessario per garantire risorse adeguate all'esecuzione delle applicazioni Selenium. Consulta i nostri [piani disponibili](https://squarecloud.app/it/pricing) e scegli quello più adatto alle tue esigenze.

### Configurazione dell'ambiente Selenium

Con Python e pip installati, procedi con la creazione dello script Selenium. Per prima cosa, installa la libreria Selenium:

```bash Terminal theme={null}
pip install selenium
```

Successivamente, crea un file Python (per esempio, `main.py`) e aggiungi il seguente codice per implementare uno script Selenium di base:

```python main.py theme={null}
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

# Configuration options for Chromium
options = Options()
options.add_argument("--headless")  # Runs in background without graphical interface
options.add_argument("--no-sandbox")  # Required for execution as root in containerized environments
options.add_argument("--disable-dev-shm-usage")  # Overcomes shared memory limitations on large pages

# Driver initialization
service = Service('/usr/bin/chromedriver')  # Default ChromeDriver path on Square Cloud
driver = webdriver.Chrome(service=service, options=options)

# Browser window dimensions configuration
driver.set_window_size(1920, 1080)  # Adjust as needed for your application

# Navigate to web page
driver.get('https://www.google.com')

# Loop for screenshot capture every minute
while True:
    driver.save_screenshot('page.png')
    print("Page screenshot saved successfully.")
    time.sleep(60)  # 60-second pause between captures
```

## Gestione delle dipendenze con requirements.txt

Il file `requirements.txt` è un componente essenziale che elenca tutte le librerie esterne necessarie al tuo progetto. È fondamentale includere tutte le dipendenze utilizzate, escludendo le librerie native di Python come `random` e `datetime`. Questo file deve essere incluso quando invii la tua applicazione a Square Cloud.

```txt requirements.txt theme={null}
selenium
```

## Configurazione del percorso di Chromium

Nell'implementazione presentata sopra, non è necessario definire esplicitamente il percorso di Chromium, poiché il WebDriver di Selenium può individuare automaticamente il browser quando è installato in una posizione standard del sistema. Il ChromeDriver, specificato con `Service('/usr/bin/chromedriver')`, sa dove individuare l'eseguibile di Chromium/Chrome.

### Architettura di Square Cloud

Su Square Cloud, Chromium è installato in `/usr/bin/chromium`, che è la posizione standard del sistema. Pertanto, il WebDriver di Selenium può individuarlo automaticamente tramite il ChromeDriver specificato. Di conseguenza, non è necessario specificare esplicitamente il percorso di Chromium nel codice, a meno che non vi siano motivi specifici per farlo, come installazioni personalizzate o configurazioni d'ambiente differenti.

## File di configurazione di Square Cloud

<Card title="Scopri: come creare il file di configurazione per Square Cloud." icon="link" href="https://docs.squarecloud.app/it/getting-started/config-file">
  Il file squarecloud.app è un file di configurazione essenziale che verrà utilizzato per configurare la tua applicazione su Square Cloud. Definisce nome, descrizione, versione, file principale, tra le altre configurazioni fondamentali.
</Card>

## Caricamento del progetto su Square Cloud

Dopo aver preparato tutti i file del progetto, procedi con il caricamento su Square Cloud e ospita la tua applicazione in modo professionale.

<Tabs>
  <Tab title="Upload tramite Dashboard">
    Accedi alla [Dashboard di Square Cloud](https://squarecloud.app/it/dashboard/new) e carica i file del tuo progetto.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Caricamento dell'applicazione su Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Tab>

  <Tab title="Upload tramite CLI">
    <Steps>
      <Step title="Primo passo">
        Per prima cosa, devi avere la CLI installata nel tuo ambiente. Se non ce l'hai ancora, esegui il seguente comando nel terminale:

        ```bash Terminal theme={null}
        npm install -g @squarecloud/cli
        ```

        Se ce l'hai già, ti consigliamo di aggiornarla. Per farlo, esegui il seguente comando nel terminale:

        ```bash Terminal theme={null}
        squarecloud update
        ```
      </Step>

      <Step title="Secondo passo">
        Per autenticarti e usare gli altri comandi della CLI, troverai la tua chiave di autorizzazione [qui](https://squarecloud.app/it/account/security) cliccando su "Request API Key". Dopo aver ottenuto la tua chiave di autorizzazione, esegui il seguente comando:

        ```bash Terminal theme={null}
        squarecloud auth login
        ```
      </Step>

      <Step title="Terzo passo">
        Infine, per fare il deploy della tua applicazione su Square Cloud usando la CLI, esegui il seguente comando, fornendo il percorso del tuo file zip:

        ```bash Terminal theme={null}
        squarecloud upload zip
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Risorse e documentazione aggiuntive

Per informazioni più dettagliate su Selenium e i suoi strumenti avanzati, visita la [documentazione ufficiale di Selenium](https://www.selenium.dev/documentation/webdriver/getting_started/). Lì troverai guide tecniche dettagliate, tutorial specializzati e la documentazione completa dell'API per sfruttare al massimo le funzionalità di Selenium.

## Contattaci

Se continui a riscontrare **difficoltà tecniche**, il nostro **team di supporto specializzato** è disponibile ad assisterti. [**Contattaci**](https://squarecloud.app/it/support) e saremo felici di aiutarti a risolvere qualsiasi problema.
