Python 3.x 从<;span>;标记元素
我有一个表,其中每行有一个xpath,每行中嵌入一列。行的xpath中有一个标记,它根据您在该页上选择的内容更改文本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 或
<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