alu*_*ach 8 python selenium xpath
我正在尝试使用Selenium(在Python中)从网站中提取一些信息.我一直在选择带有XPath的元素,但是在使用以下兄弟选择器时遇到了麻烦.HTML如下:
<span class="metadata">
<strong>Photographer's Name: </strong>
Ansel Adams
</span>
Run Code Online (Sandbox Code Playgroud)
我可以选择"摄影师的名字"
In [172]: metaData = driver.find_element_by_class_name('metadata')
In [173]: metaData.find_element_by_xpath('strong').text
Out[173]: u"Photographer's Name:"
Run Code Online (Sandbox Code Playgroud)
我正在尝试选择标记后的文本部分(示例中为"Ansel Adams").我假设我可以使用以下兄弟选择器,但我收到以下错误:
In [174]: metaData.find_element_by_xpath('strong/following-sibling::text()')
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (328, 0))
... [NOTE: Omitted the traceback for brevity] ...
InvalidSelectiorException: Message: u'The given selector strong/following-sibling::text() is either invalid or does not result in a WebElement. The following error occurred:\n[InvalidSelectorError] The result of the xpath expression "strong/following-sibling::text()" is: [object Text]. It should be an element.'
Run Code Online (Sandbox Code Playgroud)
关于为什么这不起作用的任何想法?
@RossPatterson是对的.麻烦的是文本'安塞尔亚当斯'不是WebElement,所以你不能使用find_element或find_elements.如果您将HTML更改为
<span class="metadata">
<strong>Photographer's Name: </strong>
<strong>Ansel Adams</strong>
</span>
Run Code Online (Sandbox Code Playgroud)
然后find_element_by_xpath('strong/following-sibling::*[1]').text返回'安塞尔亚当斯'.
| 归档时间: |
|
| 查看次数: |
14881 次 |
| 最近记录: |