Inhaltsverzeichnis
Detaillierte Erläuterung der Selenium-Nutzung
Heim Web-Frontend js-Tutorial Ausführliche Erklärung zur Verwendung von Selen

Ausführliche Erklärung zur Verwendung von Selen

Jun 11, 2018 pm 05:53 PM
selenium

Detaillierte Erläuterung der Selenium-Nutzung


*Selenium wird hauptsächlich für automatisierte Tests verwendet und unterstützt mehrere Browser. Es wird hauptsächlich in Crawlern zur Lösung von JavaScript-Rendering-Problemen verwendet.
Simulieren Sie den Browser, um die Webseite zu laden.

1 Deklarieren Sie das Browserobjekt Benennen Sie nicht den Paketnamen Selenium, da dieser nicht importiert werden kann. rrree
Webdriver kann als Treiber des Browsers verwendet werden. Es unterstützt mehrere Browser ist Chrome als Beispiel

from selenium import webdriver
Nach dem Login kopieren

2. Besuchen Sie die Seite und holen Sie sich den Webseiten-HTML

browser = webdriver.Chrome()
Nach dem Login kopieren

3. Finden Sie das Element

Single Element

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
print(browser.page_source) # browser.page_source是获取网页的全部htmlbrowser.close()
Nach dem Login kopieren

Häufig verwendet Die Suchmethode

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_first = browser.find_element_by_id('q')
input_second = browser.find_element_by_css_selector('#q')
input_third = browser.find_element_by_xpath('//*[@id="q"]')
print(input_first,input_second,input_third)
browser.close()
Nach dem Login kopieren

kann auch die allgemeine Methode

find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
Nach dem Login kopieren

mehrere Elemente, mehrere Elemente s

from selenium import webdriverfrom selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_first = browser.find_element(BY.ID,'q')#第一个参数传入名称,第二个传入具体的参数print(input_first)
browser.close()
Nach dem Login kopieren

4 verwenden . Elementinteraktion – Suchfeldeingabe Schlüsselwörter für die automatische Suche kann Attribute und Screenshots haben. Warten

5. Interaktive Aktionen, steuern Sie den Browser, um Aktionen auszuführen, simulieren Sie Drag-and-Drop-Aktionen und hängen Sie Aktionen an die Aktionskette an, um sie seriell auszuführen

input_first = browser.find_elements_by_id('q')
Nach dem Login kopieren

Weitere Operationen: http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains

JavaScript ausführen

Einige Aktionen werden möglicherweise nicht über die API bereitgestellt, z. B. das Fortschrittsbalken-Dropdown. Zu diesem Zeitpunkt können wir JavaScript über Code ausführen

from selenium import webdriver
import timebrowser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input = browser.find_element_by_id('q')#找到搜索框input.send_keys('iPhone')#传送入关键词time.sleep(5)
input.clear()#清空搜索框input.send_keys('男士内裤')
button = browser.find_element_by_class_name('btn-search')#找到搜索按钮button.click()
Nach dem Login kopieren

7. Elementinformationen abrufenAttribute abrufen

from selenium import webdriverfrom selenium.webdriver import ActionChains#引入动作链browser = webdriver.Chrome()
url = 'http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'browser.get(url)
browser.switch_to.frame('iframeResult')#切换到iframeResult框架source = browser.find_element_by_css_selector('#draggable')#找到被拖拽对象target = browser.find_element_by_css_selector('#droppable')#找到目标actions = ActionChains(browser)#声明actions对象actions.drag_and_drop(source, target)
actions.perform()#执行动作
Nach dem Login kopieren

Textwert abrufen

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')
browser.execute_script('alert("To Bottom")')
Nach dem Login kopieren

ID, Ort, Tag-Name, Größe abrufen

from selenium import webdriverfrom selenium.webdriver import ActionChains
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'browser.get(url)
logo = browser.find_element_by_id('zh-top-link-logo')#获取网站logoprint(logo)
print(logo.get_attribute('class'))
browser.close()
Nach dem Login kopieren

8. Frame-Operation

Frame entspricht einer unabhängigen Webseite Wenn Sie im Netzwerkrahmen der übergeordneten Kategorie nach einer Unterkategorie suchen, müssen Sie zum Rahmen der Unterklasse wechseln. Wenn die Unterklasse nach der übergeordneten Klasse sucht, muss sie auch zu

from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'browser.get(url)
input = browser.find_element_by_class_name('zu-top-add-question')
print(input.text)#input.text文本值browser.close()
Nach dem Login kopieren

wechseln. 9. Warten

Implizites Warten

Wenn beim Ausführen des Tests das implizite Warten verwendet wird und WebDriver das Element im DOM nicht findet, wartet es weiter Die Ausnahme des nicht gefundenen Elements wird ausgelöst. Mit anderen Worten, wenn das Element gefunden wird oder nicht sofort angezeigt wird, wird implizit eine Zeit lang gewartet, bevor das DOM durchsucht wird ist 0

from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'browser.get(url)
input = browser.find_element_by_class_name('zu-top-add-question')
print(input.id)#获取idprint(input.location)#获取位置print(input.tag_name)#获取标签名print(input.size)#获取大小browser.close()
Nach dem Login kopieren
Explizites Warten

Geben Sie eine Wartebedingung und eine maximale Wartezeit an. Das Programm ermittelt, ob die Bedingung erfüllt ist. Wenn sie erfüllt ist, wird dies der Fall sein Wird zurückgegeben, wird weiter gewartet. Wenn die Zeit überschritten wird, wird eine Ausnahme ausgelöst.

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementException
browser = webdriver.Chrome()
url = 'http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'browser.get(url)
browser.switch_to.frame('iframeResult')
source = browser.find_element_by_css_selector('#draggable')
print(source)try:
    logo = browser.find_element_by_class_name('logo')except NoSuchElementException:
    print('NO LOGO')
browser.switch_to.parent_frame()
logo = browser.find_element_by_class_name('logo')
print(logo)
print(logo.text)
Nach dem Login kopieren
from selenium import webdriver
browser = webdriver.Chrome()
browser.implicitly_wait(10)#等待十秒加载不出来就会抛出异常,10秒内加载出来正常返回browser.get('https://www.zhihu.com/explore')
input = browser.find_element_by_class_name('zu-top-add-question')
print(input)
Nach dem Login kopieren

Details: http://selenium-python.readthedocs.io/api.html# Modul -selenium.webdriver.support.expected_conditions

11. Vorwärts und Zurück – Erkennen Sie die Vorwärts- und Rückwärtsbewegungen des Browsers, um verschiedene Webseiten zu durchsuchen

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
browser.get('https://www.taobao.com/')wait = WebDriverWait(browser, 10)
input = wait.until(EC.presence_of_element_located((By.ID, 'q')))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.btn-search')))
print(input, button)
Nach dem Login kopieren

12. Cookies

title_is 标题是某内容
title_contains 标题包含某内容
presence_of_element_located 元素加载出,传入定位元组,如(By.ID, 'p')
visibility_of_element_located 元素可见,传入定位元组
visibility_of 可见,传入元素对象
presence_of_all_elements_located 所有元素加载出
text_to_be_present_in_element 某个元素文本包含某文字
text_to_be_present_in_element_value 某个元素值包含某文字
frame_to_be_available_and_switch_to_it frame加载并切换
invisibility_of_element_located 元素不可见
element_to_be_clickable 元素可点击
staleness_of 判断一个元素是否仍在DOM,可判断页面是否已经刷新
element_to_be_selected 元素可选择,传元素对象
element_located_to_be_selected 元素可选择,传入定位元组
element_selection_state_to_be 传入元素对象以及状态,相等返回True,否则返回False
element_located_selection_state_to_be 传入定位元组以及状态,相等返回True,否则返回False
alert_is_present 是否出现Alert
Nach dem Login kopieren
Tab-Verwaltung Browserfenster hinzufügen

import timefrom selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
browser.get('https://www.taobao.com/')
browser.get('https://www.python.org/')
browser.back()time.sleep(1)
browser.forward()
browser.close()
Nach dem Login kopieren

13. Ausnahmebehandlung

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
print(browser.get_cookies())
browser.add_cookie({'name': 'name', 'domain': 'www.zhihu.com', 'value': 'germey'})
print(browser.get_cookies())
browser.delete_all_cookies()
print(browser.get_cookies())
Nach dem Login kopieren

Dieser Artikel erklärt bitte die Verwendung von Selen Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So führen Sie eine 2D-Konvertierung über CSS3 durch

Detaillierte Erläuterung der JavaScript-Variablen und des Gültigkeitsbereichs

Detaillierte Erläuterung der Parameter der $.ajax()-Methode

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Verwendung von Selen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erfahren Sie, wie Sie Selenium einfach mit PyCharm installieren: PyCharm-Installations- und Konfigurationsanleitung Erfahren Sie, wie Sie Selenium einfach mit PyCharm installieren: PyCharm-Installations- und Konfigurationsanleitung Jan 04, 2024 pm 09:48 PM

PyCharm-Installations-Tutorial: Erlernen Sie ganz einfach die Installation von Selenium. Als Python-Entwickler müssen wir häufig verschiedene Bibliotheken und Tools von Drittanbietern verwenden, um die Projektentwicklung abzuschließen. Unter diesen ist Selenium eine sehr häufig verwendete Bibliothek für automatisierte Tests und UI-Tests von Webanwendungen. Als integrierte Entwicklungsumgebung (IDE) für die Python-Entwicklung bietet uns PyCharm eine bequeme und schnelle Möglichkeit, Python-Code zu entwickeln

Laravel-Entwicklung: Wie verwende ich Laravel Dusk und Selenium für Browsertests? Laravel-Entwicklung: Wie verwende ich Laravel Dusk und Selenium für Browsertests? Jun 14, 2023 pm 01:53 PM

Laravel-Entwicklung: Wie verwende ich LaravelDusk und Selenium für Browsertests? Da Webanwendungen immer komplexer werden, müssen wir sicherstellen, dass alle Teile davon ordnungsgemäß funktionieren. Browsertests sind eine gängige Testmethode, mit der die Korrektheit und Stabilität einer Anwendung unter verschiedenen Browsern sichergestellt werden soll. In der Laravel-Entwicklung können Sie LaravelDusk und Selenium für Browsertests verwenden. In diesem Artikel wird erläutert, wie Sie diese beiden Tools zum Testen verwenden

Verwendung von Selenium und PhantomJS im Scrapy-Crawler Verwendung von Selenium und PhantomJS im Scrapy-Crawler Jun 22, 2023 pm 06:03 PM

Verwendung von Selenium und PhantomJS in Scrapy-Crawlern Scrapy ist ein hervorragendes Webcrawler-Framework unter Python und wird häufig bei der Datenerfassung und -verarbeitung in verschiedenen Bereichen eingesetzt. Bei der Implementierung des Crawlers ist es manchmal erforderlich, Browservorgänge zu simulieren, um die von bestimmten Websites präsentierten Inhalte abzurufen. In diesem Fall werden Selenium und PhantomJS benötigt. Selenium simuliert menschliche Vorgänge im Browser und ermöglicht uns so die Automatisierung von Webanwendungstests

So verwenden Sie Selenium für automatisierte Webtests So verwenden Sie Selenium für automatisierte Webtests Aug 02, 2023 pm 07:43 PM

Überblick über die Verwendung von Selenium für Web-Automatisierungstests: Web-Automatisierungstests sind ein wichtiger Bestandteil des modernen Softwareentwicklungsprozesses. Selenium ist ein leistungsstarkes automatisiertes Testtool, das Benutzervorgänge in einem Webbrowser simulieren und automatisierte Testprozesse implementieren kann. In diesem Artikel wird die Verwendung von Selenium für Web-Automatisierungstests vorgestellt und Codebeispiele bereitgestellt, um den Lesern den schnellen Einstieg zu erleichtern. Vorbereitung der Umgebung Bevor Sie beginnen, müssen Sie die Selenium-Bibliothek und den Webbrowser-Treiber installieren

Verwenden Sie eine Kombination aus Java, Selenium und OpenCV, um das Problem der Slider-Verifizierung beim automatisierten Testen zu lösen. Verwenden Sie eine Kombination aus Java, Selenium und OpenCV, um das Problem der Slider-Verifizierung beim automatisierten Testen zu lösen. May 08, 2023 pm 08:16 PM

1. Idee zur Slider-Verifizierung Das Slider-Objekt des zu testenden Objekts sieht folgendermaßen aus. Relativ gesehen handelt es sich um ein relativ einfaches Formular. Sie müssen das Puzzle auf der linken Seite durch den Schieberegler unten ziehen und in den leeren Schlitz auf der rechten Seite einbetten, um die Überprüfung abzuschließen. Um diesen Überprüfungsprozess zu automatisieren, besteht der entscheidende Punkt darin, die Distanz zu bestimmen, über die der Schieber gleitet. Gemäß der obigen Analyse besteht der entscheidende Punkt der Überprüfung darin, den Gleitweg des Schiebers zu bestimmen. Aber eine scheinbar einfache Anforderung ist nicht einfach zu erfüllen. Wenn Sie diesen Prozess mit natürlicher Logik analysieren, kann er wie folgt unterteilt werden: 1. Suchen Sie die Position des Puzzles auf der linken Seite. Da Form und Größe des Puzzles festgelegt sind, müssen Sie nur den Abstand zwischen ihm ermitteln linken Rand und die linke Seite des Hintergrundbilds. (Tatsächlich ist in diesem Beispiel auch die Startposition des Puzzles festgelegt, was spart

Effizientes Crawlen von Webseitendaten: kombinierte Verwendung von PHP und Selenium Effizientes Crawlen von Webseitendaten: kombinierte Verwendung von PHP und Selenium Jun 15, 2023 pm 08:36 PM

Mit der rasanten Entwicklung der Internet-Technologie werden Webanwendungen zunehmend in unserer täglichen Arbeit und unserem Leben eingesetzt. Bei der Entwicklung von Webanwendungen ist das Crawlen von Webseitendaten eine sehr wichtige Aufgabe. Obwohl es viele Web-Scraping-Tools auf dem Markt gibt, sind diese Tools nicht sehr effizient. Um die Effizienz des Crawlens von Webseitendaten zu verbessern, können wir die Kombination von PHP und Selenium verwenden. Zuerst müssen wir verstehen, was PHP und Selenium sind. PHP ist mächtig

So installieren Sie Selenium in PyCharm So installieren Sie Selenium in PyCharm Dec 08, 2023 pm 02:32 PM

Schritte zur Installation von Selenium mit PyCharm: 1. Öffnen Sie PyCharm; 2. Wählen Sie „Datei“, „Einstellungen“, „Projekt: [Projektname]“ aus. 4. Klicken Sie auf der rechten Seite die Registerkarte „+“; 5. Suchen Sie im Popup-Fenster nach „Selen“ und klicken Sie auf die Schaltfläche „Installieren“ daneben. 8. Schließen Sie das Einstellungsdialogfeld.

So verwenden Sie Selenium zum Crawlen von Webseitendaten in Python So verwenden Sie Selenium zum Crawlen von Webseitendaten in Python May 09, 2023 am 11:05 AM

1. Was ist Selenium? Der Webcrawler ist eine sehr nützliche Technik in der Python-Programmierung, mit der Sie automatisch Daten auf Webseiten abrufen können. Selenium ist ein automatisiertes Testtool, das Benutzervorgänge im Browser simulieren kann, z. B. das Klicken auf Schaltflächen, das Ausfüllen von Formularen usw. Im Gegensatz zu häufig verwendeten Crawler-Bibliotheken wie BeautifulSoup und Requests kann Selenium dynamisch von JavaScript geladene Inhalte verarbeiten. Daher ist Selenium eine sehr geeignete Wahl für Daten, die simuliert werden müssen, um Benutzerinteraktion zu erhalten. 2. Selenium installieren Um Selenium verwenden zu können, müssen Sie es zuerst installieren. Zur Installation können Sie den Befehl pip verwenden

See all articles