Python 3.x 从<;span>;标记元素

Python 3.x 从<;span>;标记元素,python-3.x,selenium-webdriver,xpath,css-selectors,webdriverwait,Python 3.x,Selenium Webdriver,Xpath,Css Selectors,Webdriverwait,我有一个表,其中每行有一个xpath,每行中嵌入一列。行的xpath中有一个标记,它根据您在该页上选择的内容更改文本 <div class='xyz'> <span> some text </span> </div> 一些文本 我正在做//div[@class='xyz']/span.text() 然而,我无法从这里获得文本 我将python与VSCode一起使用。使用xpath从span标记获取文本的语法不正确 这是正确的xpath 或

我有一个表,其中每行有一个xpath,每行中嵌入一列。行的xpath中有一个标记,它根据您在该页上选择的内容更改文本

<div class='xyz'>
  <span> some text </span>
</div>

一些文本
我正在做
//div[@class='xyz']/span.text()

然而,我无法从这里获得文本


我将python与VSCode一起使用。

使用xpath从span标记获取文本的语法不正确

这是正确的xpath

或者您可以将
.text
与web驱动程序一起使用
通过xpath查找元素来提取文本

span_text = driver.find_element_by_xpath("//div[@class='xyz']/span").text
如果
/span
/div[@class='xyz']
的唯一子元素,则可以使用此路径而不是上面的
驱动程序。通过xpath(“//div[@class='xyz']”)查找元素。text


您可以阅读有关如何在selenium webdriver中使用xpath的内容。

尝试使用
xpath
下面的命令:

get_text = driver.find_element_by_xpath('//*[@class="xyz"]').text
print get_text

要从所需元素中提取文本某些文本,您必须为位于()的元素的
可见性引入WebDriverWait,并且您可以使用以下任一项:

  • 使用
    CSS\u选择器

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.xyz>span"))).get_attribute("innerHTML"))
    
  • 使用
    XPATH

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

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

这不是有效的语法
//div[@class='xyz']/span.text()
。您需要使用
//div[@class='xyz']/span/text()
或只使用此
驱动程序。通过xpath(“div[@class='xyz']/span”)查找元素。text
谢谢,我当然使用的是“span\u text=driver.find\u element\u by_xpath(//div[@class='xyz']/span”).text”但是它不明白。@Aboyhasnoname能告诉我你正在抓取的网址吗?
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC