【发布时间】:2018-03-21 11:40:07
【问题描述】:
我正在使用 python 和 selenium 开发刮板,但在遍历 xpath 时遇到问题。我觉得这应该很简单,但我显然遗漏了一些东西。
我能够很好地浏览我正在浏览的网站,但我需要根据 XPATH 搜索获取一些 SPAN 文本。
我可以点击相应的单选按钮(在这种情况下是第一个)
(driver.find_elements_by_name("start-date"))[0].click()
但我还需要捕获在 span 标签中捕获的单选按钮旁边的文本。
<label>
<input type="radio" name="start-date" value="1" data-start-date="/Date(1507854300000)/" data-end-date="/Date(1508200200000)/" group="15" type-id="8">
<span class="start-date">
10/12/2017<br>Summary text
</span>
</label>
在上面的示例中,我希望根据我用于查找单选按钮的 find_elements_by_name 搜索将“10/12/2017”和“摘要文本”捕获到 2 个字符串变量中。
然后我遇到了第二个类似的集合问题,我需要在按类名搜索后捕获跨度标签。这会在页面上找到合适的父节点:
(driver.find_element_by_xpath("//div[@class=\"MyClass\"]"))
根据该搜索返回的节点,我想从它下面的 span 标签中获取“Text 1”和“Text 2”。
<div class="MyClass">
<span>
<span>Text 1</span>
</span>
<span class="bullet">
</span>
<span>
<span>Text 2</span>
</span>
</div>
我是 xpath 的新手,但据我所知,我正在寻找的跨度节点应该是我在搜索中找到的节点的子节点,并且我应该能够以某种方式遍历层次结构以获取值,我只是不确定如何。
【问题讨论】:
-
好问题,因为两者都在同一个跨度
标签: python python-2.7 selenium xpath