在以下链接上:https://classicdb.ch/?quest=788
在这里//*[@id="main-contents"]/div[1]/table[1]/tbody/tr/td
它包含一个文本
Mottled Boar slain (10)
//*[@id="main-contents"]/div[1]/table[1]/tbody/tr/td/a
仅包含:
Mottled Boar
我只需要第二部分,包括:
slain (10)
在带有selenium的python中,我尝试使用以下命令直接访问节点:
//*[@id="main-contents"]/div[1]/table[1]/tbody/tr/td/text()
但是,webdriver只能包含webelements,不能包含文本节点
The result of the xpa th expression "//*[@id="main-contents"]/div[1]/table[1]/tbody/tr/td/a/following-sibling::text()" is: [object Text]. It should be an element.
我也试过:
//*[@id="main-contents"]/div[1]/table[1]/tbody/tr/td/a/following-sibling::text()
但是返回相同的错误,即它应该是元素而不是对象文本
我已经找到了一个解决方法,首先只选择文本,然后从整个文本中减去它-但这很难看。 如何正确实现这一点
谢谢你
编辑:我不能在代码中使用特定的变量,比如'slain'或'motted Boar',因为这些变量在其他情况下可能会改变
你说得对。您可以尝试这种方法直接从该节点获取文本。您将需要lxml导入
试试这个xpath
编辑
使用javaScript执行器。其中
firstChild
将返回Mottled Boar
和lastChild
将返回slain (10)
相关问题 更多 >
编程相关推荐