如何在python中使用Selenium Web驱动程序获取文本


88

我正在尝试使用Selenium Web驱动程序获取文本,这是我的代码。请注意,我不想使用Xpath,因为在我的情况下,每次重新启动网页时id都会更改,请提供帮助。

我的代码:

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>

Answers:


160

你只想.text

然后,您可以在获得验证后对其进行验证,不要尝试传递您期望的内容。


即时得到这个错误- “webdriver的”对象有没有属性“的gettext”
user3121891

1
@ user3121891,是.text
阿兰2014年

现在我正在使用此代码:driver.find_element_by_class_name(“ current-stage”)。text(“ my text”)如果文本:打印“ pass”否则:打印“ Fail”并得到此错误-'unicode'对象不可调用
user312189114年

13
@ user3121891 driver.find_element_by_class_name("current-stage").text....仅靠文字即可没有别的。
阿兰2014年

1
您将要遍历硒对象列表.text,并将for应用于for循环的每个项目。
保罗

68

蟒蛇

element.text

爪哇

element.getText()

C#

element.Text

红宝石

element.text

1
我找不到有关Python的任何文档,你们在哪里找到的?
查尔斯·史密斯

1
@CharlesSmith如果.在VSCode中的元素之后放置一个,则将根据类接受的内容为您提供建议列表。我就是这样找到的。
CodeSpent

1
是的,我在IntelliJ中注意到了同样的情况,只是想知道为什么它不在文档中
Charles Smith,

9

找到了,答案是

driver.find_element_by_class_name("ctsymbol").text

6

您可以使用:

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

这将返回元素中的文本,并允许您在此之后进行验证。


3

谢谢,这是它工作的正确答案!!

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

我发现当无法在自定义类中获取某些内容或更改id时,这绝对是无价的:

driver.find_element_by_xpath(“ // [包含(text(),'显示下一个可用日期')]”))。click()driver.find_element_by_xpath(“ // [包含(text(),'显示下一个可用日期')] “).text driver.find_element_by_xpath(” // [contains(text(),'Available')]“))。text driver.find_element_by_xpath(” // [contains(text(),'Avail')]“”)。text


也许您可以使用```标记将代码标记为代码。
Vivian De Smedt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.