python selenium xpath 获取文本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python selenium xpath 获取文本?相关的知识,希望对你有一定的参考价值。

html的内容:
<div id="testid">
<p>
获取这里的文字:11111
<a href="javascript:;" class="blue">这里文字2222</a>
<a class="green " >修改333</a>
获取这里还有文字33333
</p>
</div>

如何通过python selenium xpath 分别获取文本 “获取这里的文字:11111”和“获取这里还有文字33333”的内容。各位高手指点一下

参考技术A html的内容: <div id="testid"> <

Python - Selenium 和 XPATH 从表中提取所有行

【中文标题】Python - Selenium 和 XPATH 从表中提取所有行【英文标题】:Python - Selenium and XPATH to extract all rows from a table 【发布时间】:2015-08-21 16:11:49 【问题描述】:

我正在使用 Selenium 和 XPATH 从表中提取所有行,但只能获取第一行。

这是我正在做的事情:

from selenium import webdriver

path_to_chromedriver = '/Users/me/Desktop/chromedriver'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)

url = "http://www.psacard.com/smrpriceguide/SetDetail.aspx?SMRSetID=1055"

browser.get(url)
browser.implicitly_wait(10)

SMRtable = browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody')

for i in SMRtable.find_element_by_xpath('.//tr'):
    print i.get_attribute('innerHTML')

browser.close()

当我转换为字符串并打印时,SMRtable 变量中包含所有行。当我尝试遍历它时,它会抛出 not iterable 错误。

我也尝试过使用browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody/tr'),但这只会给我第一行。我尝试在/tr 之后添加[position()&gt;0],但仍然只有第一行。

如何获取所有行?

【问题讨论】:

【参考方案1】:

你需要find_elements_by_xpath()(注意“s”):

for i in SMRtable.find_elements_by_xpath('.//tr'):
    print i.get_attribute('innerHTML')

【讨论】:

我讨厌这种情况发生。谢谢。 什么是'innerHTML? CSS 还是 xpath?' 使用 print(i.get_attribute('innerHTML') 我得到了 HTML 表格代码。如何将其呈现到 DataFrame 或 CSV?谢谢

以上是关于python selenium xpath 获取文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中使用selenium Xpath从tr标签中获取所有td [3]标签

selenium 获取table中的元素。python

Selenium xpath 对 python 的行为与对 ruby​​ 的行为不同 [重复]

如何通过 Selenium 和 Python 从 html 标签跨度获取文本

Python Selenium 常用方法总结

Python Selenium 常用方法总结