如何在Python + Selenium中获取元素的值?

时间:2018-01-07 17:23:17

标签: python html selenium dom selenium-webdriver

我的Python(3.6.3)代码中有这个HTML元素(当然是Selenium webelement):

<span class="ocenaCzastkowa masterTooltip" style="color:#000000;" alt="Kod: 
pd1<br/>Opis: praca domowa<br/>Waga: 2,00<br/>Data: 12.09.2017<br/>Nauczyciel: 
(NAME CENSORED)">5</span>

我希望得到最后的值(在这种情况下是5),我不知道如何得到它。 显然我不能使用webelement.get_attribute()因为我不知道属性的名称。

2 个答案:

答案 0 :(得分:3)

请尝试以下代码:

span_element = driver.find_element_by_css_selector(".ocenaCzastkowa.masterTooltip")
span_element.text # This will return "5".

PS:您也可以使用span_element.get_attribute("value")

希望它可以帮到你!

答案 1 :(得分:0)

要打印 textContent,即 5,您可以使用以下任一 Locator Strategies

  • 使用 css_selector

    print(driver.find_element(By.CSS_SELECTOR, "div.ocenaCzastkowa.masterTooltip").text)
    
  • 使用 xpath

    print(driver.find_element(By.XPATH, "//span[@class='ocenaCzastkowa masterTooltip']").text)
    

理想情况下,您需要为 visibility_of_element_located() 引入 WebDriverWait,并且您可以使用以下任一 Locator Strategies

  • 使用 CSS_SELECTOR

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.ocenaCzastkowa.masterTooltip"))).text)
    
  • 使用 XPATH

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='ocenaCzastkowa masterTooltip']"))).text)
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
<块引用>

您可以在 How to retrieve the text of a WebElement using Selenium - Python

中找到相关讨论