如何在python中使用selenium web驱动程序获取文本

use*_*891 61 python selenium

我正在尝试使用selenium web驱动程序获取文本,这是我的代码.请注意,我不想使用Xpath,因为在我的情况下,ID会在每次重新启动网页时发生变化,请帮忙.

我的代码:

text=driver.find_element_by_class_name("current-stage").getText("my text")
Run Code Online (Sandbox Code Playgroud)

HTML:

<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>
Run Code Online (Sandbox Code Playgroud)

Arr*_*ran 115

你想要的.text.

然后,您可以验证它,你已经得到它,不要试图在你怎么传递期望它应该有.

  • @ user3121891`driver.find_element_by_class_name("current-stage").text` ....它只是**文本**.*没有其他的. (10认同)
  • @user3121891,它是`.text`。 (3认同)

Shu*_*ain 50

蟒蛇

element.text
Run Code Online (Sandbox Code Playgroud)

Java的

element.getText()
Run Code Online (Sandbox Code Playgroud)

C#

element.Text
Run Code Online (Sandbox Code Playgroud)

红宝石

element.text
Run Code Online (Sandbox Code Playgroud)

示例(在Python中):

element.text
Run Code Online (Sandbox Code Playgroud)

  • 我找不到关于Python的任何文档,你们在哪里找到这个? (3认同)
  • @CharlesSmith,如果您在 VSCode 中的元素后面放置一个“.”,您将获得一个基于该类接受的内容的建议列表。我就是这样发现的。 (2认同)
  • @Charles Smith:它位于*[Web element](https://www.selenium.dev/documentation/en/webdriver/web_element/)*,子部分*“获取元素文本”*(位于页面底部)。有六种不同的语言,默认语言是 JavaScript。单击“Python”* 查看 Python 代码示例。 (2认同)

Deb*_*anB 23

要打印文本,您可以使用以下定位器策略my text之一:


理想情况下,您需要引发WebDriverWaitvisibility_of_element_located(),并且可以使用以下任一定位器策略

  • 使用CLASS_NAMEget_attribute("textContent")

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CLASS_NAME, "current-stage"))).get_attribute("textContent"))
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用CSS_SELECTOR文本属性:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.current-stage"))).text)
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用XPATHget_attribute("innerHTML")

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='current-stage']"))).get_attribute("innerHTML"))
    
    Run Code Online (Sandbox Code Playgroud)
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    Run Code Online (Sandbox Code Playgroud)

您可以在如何使用 Selenium - Python 检索 WebElement 的文本中找到相关讨论


参考

有用文档的链接:


rea*_*ing 6

找到了,答案是

driver.find_element_by_class_name("ctsymbol").text
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用:

element = driver.find_element_by_class_name("class_name").text
Run Code Online (Sandbox Code Playgroud)

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