Selênio

Como obter o URL atual com Selenium

Como obter o URL atual com Selenium
Selenium é uma ferramenta para teste de navegador, automação da web e web scraping. Enquanto trabalha em seus projetos Selenium, você pode precisar saber a URL da página que seu navegador controlado pelo Selenium está exibindo. Essas informações podem ser úteis para rastrear o URL de onde você extraiu alguns dados para que possa atualizar os dados automaticamente usando algum script.

Neste artigo, vou mostrar como obter o URL atual do navegador com Selenium. Então vamos começar.

Pré-requisitos:

Para experimentar os comandos e exemplos deste artigo, você deve ter,

1) Uma distribuição Linux (de preferência Ubuntu) instalada no seu computador.
2) Python 3 instalado em seu computador.
3) PIP 3 instalado no seu computador.
4) Python virtualenv pacote instalado no seu computador.
5) Navegadores Mozilla Firefox ou Google Chrome instalados em seu computador.
6) Deve saber como instalar o Firefox Gecko Driver ou Chrome Web Driver.

Para cumprir os requisitos 4, 5 e 6, leia meu artigo Introdução ao Selenium com Python 3 na Linuxhint.com.

Você pode encontrar muitos artigos sobre outros tópicos no LinuxHint.com. Certifique-se de verificá-los se precisar de alguma ajuda.

Configurando um diretório de projeto:

Para manter tudo organizado, crie um novo diretório de projeto selênio-url / do seguinte modo:

$ mkdir -pv selenium-url / drivers

Navegue até o selênio-url / diretório do projeto da seguinte forma:

$ cd selenium-url /

Crie um ambiente virtual Python no diretório do projeto da seguinte maneira:

$ virtualenv .venv

Ative o ambiente virtual da seguinte maneira:

$ source .venv / bin / activate

Instale a biblioteca Selenium Python em seu ambiente virtual usando PIP3 da seguinte maneira:

$ pip3 install selenium

Baixe e instale todos os drivers da web necessários no motoristas / diretório do projeto. Eu expliquei o processo de download e instalação de drivers da web em meu artigo Introdução ao Selenium com Python 3. Se você precisar de alguma ajuda, pesquise LinuxHint.com para aquele artigo.

Usarei o navegador Google Chrome para a demonstração neste artigo. Então, vou usar o cromedriver binário com selênio. Você deve usar o geckodriver binário se você quiser usar o navegador Firefox.

Obtendo URL atual com Selenium:

Crie um script Python ex01.py no diretório do seu projeto e digite as seguintes linhas de códigos nele.

from selenium import webdriver
de selênio.driver da web.comum.chaves importar chaves
options = webdriver.ChromeOptions ()
opções.sem cabeça = verdadeiro
navegador = webdriver.Chrome (executable_path = "./ drivers / chromedriver ", options = options)
navegador.get ("https: // duckduckgo.com / ")
imprimir (navegador.current_url)
navegador.perto()

Quando terminar, salve o ex01.py Script Python.

Aqui, a linha 1 e a linha 2 importam todos os componentes necessários da biblioteca Python selenium.

A linha 4 cria um objeto Chrome Options e a linha 5 ativa o modo headless para o navegador Chrome.

A linha 7 cria um Chrome navegador objeto usando o cromedriver binário do motoristas / diretório do projeto.

A linha 9 diz ao navegador para carregar o duckduckgo.com site.

A linha 10 imprime o URL atual do navegador. Aqui, navegador.current_url propriedade é usada para acessar o URL atual do navegador.

A linha 12 fecha o navegador.

Execute o script Python ex01.py do seguinte modo:

$ python3 ex01.py

Como você pode ver, o URL atual (https: // duckduckgo.com) está impresso no console.

No exemplo anterior, visitei o site duckduckgo.com e imprimiu o URL atual no console. Isso retorna o URL da página que estamos visitando. Não é muito sofisticado, pois já sabemos o URL da página. Agora, vamos pesquisar algo no DuckDuckGo e tentar imprimir o URL da página de resultados da pesquisa no console.

Crie um script Python ex02.py no diretório do seu projeto e digite as seguintes linhas de códigos nele.

from selenium import webdriver
de selênio.driver da web.comum.chaves importar chaves
options = webdriver.ChromeOptions ()
opções.sem cabeça = verdadeiro
navegador = webdriver.Chrome (executable_path = "./ drivers / chromedriver ", options = options)
navegador.get ("https: // duckduckgo.com / ")
imprimir (navegador.current_url)
searchInput = navegador.find_element_by_id ('search_form_input_homepage')
searchInput.send_keys ('selenium hq' + Chaves.ENTRAR)
imprimir (navegador.current_url)
navegador.perto()

Quando terminar, salve o ex02.py Script Python.

Aqui, as linhas 1-10 são as mesmas que em ex01.py. Então, eu não estou explicando novamente.

A linha 12 encontra a caixa de texto de pesquisa e a armazena no searchInput variável.

A linha 13 envia a consulta de pesquisa selênio hq no searchInput caixa de texto e pressiona o chave usando Chaves.ENTRAR.

Assim que a página de pesquisa carregar, navegador.current_url é usado para acessar o URL atual atualizado.

A linha 15 imprime o URL atual atualizado no console.

A linha 17 fecha o navegador.

Execute o ex02.py Script Python da seguinte forma:

$ python3 ex02.py

Como você pode ver, o script Python ex02.py imprime 2 URLs.

O primeiro é o URL da página inicial do mecanismo de pesquisa DuckDuckGo.

O segundo é o URL atual atualizado após realizar uma pesquisa no mecanismo de pesquisa DuckDuckGo usando a consulta selênio hq.

Conclusão:

Neste artigo, mostrei como obter o URL atual do navegador da web usando a biblioteca Selenium Python. Agora, você deve ser capaz de tornar seus projetos Selenium mais interessantes.

5 melhores jogos de arcade para Linux
Hoje em dia, os computadores são máquinas sérias usadas para jogos. Se você não pode obter a nova pontuação máxima, você saberá o que quero dizer. Nes...
Batalha por Wesnoth 1.13.6 Desenvolvimento lançado
Batalha por Wesnoth 1.13.6 lançado no mês passado, é o sexto lançamento de desenvolvimento no 1.13.série x e oferece uma série de melhorias, principal...
Como instalar o League Of Legends no Ubuntu 14.04
Se você é fã de League of Legends, esta é uma oportunidade para testar o funcionamento de League of Legends. Observe que LOL é suportado no PlayOnLinu...