嗨,
我试图抓取范围class = "ws-value"
的值(在源代码图片中以红色为界)。我试过了:
test = driver.find_elements_by_xpath(".//span[@class='ws-value']")
print test
但我得到的只是一个空列表。
有人可以告诉我如何获得两个ws值吗?非常感谢!
答案 0 :(得分:0)
使用find_element而不是find_elements和text
方法来获取文本
test = driver.find_element_by_xpath(".//span[@class='ws-value']").text
print test
如果你想得到所有这些元素值,那么循环遍历它:
test = driver.find_elements_by_xpath(".//span[@class='ws-value']")
for x in test:
print x.text
答案 1 :(得分:0)
使用.text
方法和此xpath
test = driver.find_element_by_xpath("//span[contains(@class,'test')]").text
print test
如果有多个节点,你还必须使用if else条件
答案 2 :(得分:0)
您可以尝试按以下方式应用ExplicitWait等待所需span
个节点的存在,然后获取text
属性的值:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
test = [node.text for node in WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, ".//span[@class='ws-value']")))]
答案 3 :(得分:0)
根据HTML
打印 84
, 69
,您可以使用以下代码块:
for test in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located(By.XPATH, "//ul[@id='walkscore-target']/li//div[@class='ws-score']/a[@rel='nofollow']/span[@class='ws-value']")) :
print(test.get_attribute("innerHTML"))