Hoe u de huidige URL kunt krijgen met Selenium

How Get Current Url With Selenium



Selenium is een tool voor browsertests, webautomatisering en webscraping. Terwijl u aan uw Selenium-projecten werkt, moet u mogelijk de URL weten van de pagina die uw door Selenium bestuurde webbrowser weergeeft. Deze informatie kan handig zijn om de URL bij te houden waar u bepaalde gegevens vandaan heeft gehaald, zodat u de gegevens mogelijk automatisch kunt bijwerken met een script.

In dit artikel laat ik je zien hoe je de huidige URL van de browser met Selenium kunt krijgen. Dus laten we beginnen.







Vereisten:

Om de commando's en voorbeelden van dit artikel uit te proberen, moet je hebben,



1) Een Linux-distributie (bij voorkeur Ubuntu) die op uw computer is geïnstalleerd.
2) Python 3 geïnstalleerd op uw computer.
3) PIP 3 geïnstalleerd op uw computer.
4) Python virtueel pakket geïnstalleerd op uw computer.
5) Mozilla Firefox- of Google Chrome-webbrowsers die op uw computer zijn geïnstalleerd.
6) Moet weten hoe de Firefox Gecko Driver of Chrome Web Driver te installeren.



Lees mijn artikel om aan de vereisten 4, 5 en 6 te voldoen Inleiding tot Selenium met Python 3 op Linuxhint.com.





U kunt veel artikelen over de andere onderwerpen vinden op LinuxHint.com . Zorg ervoor dat je ze bekijkt als je hulp nodig hebt.

Een projectmap instellen:

Maak een nieuwe projectdirectory om alles overzichtelijk te houden selenium-url/ als volgt:



$mkdir -pvselenium-url/chauffeurs

Navigeer naar de selenium-url/ projectmap als volgt:

$CDselenium-url/

Maak als volgt een virtuele Python-omgeving in de projectdirectory:

$virtualenv .venv

Activeer de virtuele omgeving als volgt:

$bron.venv/ben/activeren

Installeer de Selenium Python-bibliotheek als volgt in uw virtuele omgeving met PIP3:

$ pip3 installeer selenium

Download en installeer alle vereiste webstuurprogramma's in de chauffeurs/ map van het project. Ik heb het proces van het downloaden en installeren van webstuurprogramma's uitgelegd in mijn artikel Inleiding tot Selenium met Python 3 . Als je hulp nodig hebt, zoek dan op LinuxHint.com voor dat artikel.

Ik zal de Google Chrome-webbrowser gebruiken voor de demonstratie in dit artikel. Dus ik zal de gebruiken chromedriver binair met selenium. Je zou de moeten gebruiken gekko bestuurder binair als u de Firefox-webbrowser wilt gebruiken.

Een Python-script maken ex01.py in uw projectdirectory en typ de volgende regels codes erin.

vanseleniumimporterenwebstuurprogramma
vanselenium.webstuurprogramma.gemeenschappelijk.sleutels importerenSleutels
opties=webstuurprogramma.Chrome-opties()
opties.zonder hoofd = Waar
browser=webstuurprogramma.Chroom(uitvoerbaar_pad='./drivers/chromedriver',opties=opties)
browser.krijgen('https://duckduckgo.com/')
afdrukken(browser.huidige_url)
browser.dichtbij()

Als u klaar bent, slaat u de ex01.py Python-script.

Hier importeren regel 1 en regel 2 alle vereiste componenten uit de Python-seleniumbibliotheek.

Regel 4 maakt een object Chrome-opties en regel 5 schakelt de headless-modus in voor de Chrome-webbrowser.

Regel 7 maakt een Chrome browser object met behulp van de chromedriver binair van de chauffeurs/ map van het project.

Regel 9 vertelt de browser om de duckduckgo.com-website te laden.

Regel 10 drukt de huidige URL van de browser af. Hier, browser.current_url eigenschap wordt gebruikt om toegang te krijgen tot de huidige URL van de browser.

Regel 12 sluit de browser.

Voer het Python-script uit ex01.py als volgt:

$python3 ex01.py

Zoals u kunt zien, is de huidige URL ( https://duckduckgo.com ) is afgedrukt op de console.

In het eerdere voorbeeld heb ik de website duckduckgo.com bezocht en de huidige URL op de console afgedrukt. Dit retourneert de URL van de pagina die we bezoeken. Niet erg luxe omdat we de pagina-URL al kennen. Laten we nu iets zoeken op DuckDuckGo en proberen de URL van de pagina met zoekresultaten op de console af te drukken.

Een Python-script maken ex02.py in uw projectdirectory en typ de volgende regels codes erin.

vanseleniumimporterenwebstuurprogramma
vanselenium.webstuurprogramma.gemeenschappelijk.sleutels importerenSleutels
opties=webstuurprogramma.Chrome-opties()
opties.zonder hoofd = Waar
browser=webstuurprogramma.Chroom(uitvoerbaar_pad='./drivers/chromedriver',opties=opties)
browser.krijgen('https://duckduckgo.com/')
afdrukken(browser.huidige_url)
zoekenInvoer=browser.find_element_by_id('search_form_input_homepage')
zoekenInvoer.send_keys('selenium hq'+ Sleutels.BINNENKOMEN)
afdrukken(browser.huidige_url)
browser.dichtbij()

Als u klaar bent, slaat u de ex02.py Python-script.

Hier zijn regels 1-10 hetzelfde als in ex01.py . Ik ga ze dus niet nog een keer uitleggen.

Regel 12 vindt het zoektekstvak en slaat het op in de zoekenInvoer variabel.

Regel 13 verzendt de zoekopdracht selenium hq in de zoekenInvoer tekstvak en drukt op de sleutel met behulp van Toetsen.ENTER .

Zodra de zoekpagina is geladen, browser.current_url wordt gebruikt om toegang te krijgen tot de bijgewerkte huidige URL.

Regel 15 drukt de bijgewerkte huidige URL af op de console.

Regel 17 sluit de browser.

Voer de ... uit ex02.py Python-script als volgt:

$python3 ex02.py

Zoals je kunt zien, is het Python-script ex02.py drukt 2 URL's af.

De eerste is de homepage-URL van de DuckDuckGo-zoekmachine.

De tweede is de bijgewerkte huidige URL na het uitvoeren van een zoekopdracht op de DuckDuckGo-zoekmachine met behulp van de zoekopdracht selenium hq .

Conclusie:

In dit artikel heb ik je laten zien hoe je de huidige URL van de webbrowser kunt krijgen met behulp van de Selenium Python-bibliotheek. Nu zou u uw Selenium-projecten interessanter moeten kunnen maken.