So erhalten Sie Text mit dem Selenium-Webtreiber in Python


88

Ich versuche, Text mit dem Selenium-Webtreiber abzurufen, und hier ist mein Code. Bitte beachten Sie, dass ich Xpath nicht verwenden möchte, da in meinem Fall die ID bei jedem Neustart der Webseite geändert wird. Bitte helfen Sie.

Mein Code:

text=driver.find_element_by_class_name("current-stage").getText("my text")

HTML:

<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>

Antworten:


159

Du willst nur .text.

Sie können es dann überprüfen, nachdem Sie es erhalten haben. Versuchen Sie nicht, das zu übergeben, was Sie erwarten .


Ich
erhalte

1
@ user3121891, es ist .text.
Arran

Jetzt verwende ich diesen Code: driver.find_element_by_class_name ("current-stage"). Text ("my text") wenn text: print "pass" else: print "Fail" und erhalte diesen Fehler - 'Unicode'-Objekt ist nicht aufrufbar
user3121891

12
@ user3121891 driver.find_element_by_class_name("current-stage").text.... nur Text für sich. Sonst nichts .
Arran

1
Sie möchten die Liste der Selen-Objekte durchlaufen und die .textauf jedes Element der for-Schleife anwenden .
Paul

68

Python

element.text

Java

element.getText()

C #

element.Text

Rubin

element.text

1
Ich kann keine Dokumentation zu Python finden. Wo findet ihr das?
Charles Smith

1
@CharlesSmith Wenn Sie .in VSCode ein nach dem Element setzen, erhalten Sie eine Liste mit Vorschlägen, die darauf basieren, was die Klasse akzeptiert. So habe ich das gefunden.
CodeSpent

1
Ja, ich habe dasselbe in IntelliJ bemerkt und mich nur gefragt, warum es nicht in den Dokumenten steht
Charles Smith

9

Gefunden, die Antwort ist

driver.find_element_by_class_name("ctsymbol").text

6

Sie können verwenden:

element = driver.find_element_by_class_name("class_name").text

Dadurch wird der Text innerhalb des Elements zurückgegeben und Sie können ihn anschließend überprüfen.


3

Danke das ist die richtige Antwort es hat funktioniert !!

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome("E:\\Python\\selenium\\webdriver\\chromedriver.exe")
driver.get("https://www.tatacliq.com/global-desi-navy-embroidered-kurta/p-mp000000000876745")
driver.set_page_load_timeout(45)
driver.maximize_window()
driver.implicitly_wait(2)
driver.get_screenshot_as_file("E:\\Python\\Tatacliq.png")
print ("Executed Succesfull")
driver.find_element_by_xpath("//div[@class='pdp-promo-title pdp-title']").click()`enter code here`
SpecialPrice =driver.find_element_by_xpath("//div[@class='pdp-promo-title pdp-title']").text
print(SpecialPrice)

0

Ich fand das absolut von unschätzbarem Wert, wenn ich nicht in der Lage bin, etwas in einer benutzerdefinierten Klasse zu finden oder IDs zu ändern:

driver.find_element_by_xpath ("// [enthält (text (), 'Nächstes verfügbares Datum anzeigen')]"). click () driver.find_element_by_xpath ("// [enthält (text (), 'Nächstes verfügbares Datum anzeigen')] ") .text driver.find_element_by_xpath (" // [enthält (text (), 'Available')] "). text driver.find_element_by_xpath (" // [enthält (text (), 'Avail')] "). text


Vielleicht können Sie Ihren Code mit dem `` `Marker als Code markieren.
Vivian De Smedt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.