Python 如何在Robot框架中解析HTML

Python 如何在Robot框架中解析HTML,python,html,parsing,robotframework,Python,Html,Parsing,Robotframework,下面是我的文本,它存储在${Tooltipdata}中: <hr><b><strong>Task Details</strong></b><hr><b>Date Created: </b> 02/21/2014 07:52pm<br> <b>Date Modified: </b> 02/24/2014 05:47pm<br><b>A

下面是我的文本,它存储在
${Tooltipdata}
中:

    <hr><b><strong>Task Details</strong></b><hr><b>Date Created: </b> 02/21/2014 07:52pm<br> 
<b>Date Modified: </b> 02/24/2014 05:47pm<br><b>Assigned to: </b> Administrator<br>
<b>Created By: </b> Administrator<br><b>Status: </b> Pending Input<br><b>Description:
 </b> test<br>

简单我想删除HTML标记。

您可以尝试使用正则表达式:

import re

data = "<hr><b><strong>Task Details</strong></b><hr><b>Date Created: </b> 02/21/2014 7:52pm<br><b>Date Modified: </b> 02/24/2014 05:47pm<br><b>Assigned to: </b> Administrator<br><b>Created By: </b> Administrator<br><b>Status: </b> Pending Input<br><b>Description: </b> test<br>"
# get text without tag
result = re.split(r'<[A-z\/]*>', data)

# print with removed tag
print ''.join(result)
重新导入
data=“
任务详细信息
创建日期:2014年2月21日7:52pm
修改日期:2014年2月24日05:47pm
分配给:管理员
创建人:管理员
状态:待定输入
描述:测试
” #获取没有标记的文本 结果=重新拆分(r'',数据) #用移除的标签打印 打印“”。加入(结果)
通过使用字符串库,我们可以替换字符串。这是我用来替换字符串的代码

${str} =    Replace String    ${Tooltipdata}    <hr>    a
${str}=Replace String${Tooltipdata}
a
您可以使用关键字来运行python命令。像这样的方法应该会奏效:

*** Keywords ***
| Remove HTML tags
| | [Documentation] | Strip HTML tags from the given string
| | [Arguments]     | ${string}
| | ${result}=      | Evaluate | re.sub(r'<.*?>', '', '''${string}''') | re
| | [Return]        | ${result}

*** Test cases ***
| Example
| | ${Tooltipdata}= | Some keyword which returns the tooltip data
| | ${string}= | Remove HTML tags | ${Tooltipdata}
***关键字***
|删除HTML标记
||[文档]|从给定字符串中删除HTML标记
||[参数]|${string}
||${result}=| Evaluate | re.sub(r'','','${string}'')| re
||[返回]|${result}
***测试用例***
|范例
||${Tooltipdata}=|返回工具提示数据的某个关键字
||${string}=|删除HTML标记|${Tooltipdata}
如果您不熟悉正则表达式,上面的表达式表示“匹配<和>”之间的最短字符串,
re.sub
命令将用空字符串替换每个匹配项

如果html标记中包含
属性,则此操作将失败;如果数据同时包含<和>,则此操作也将替换非html标记,但这是您尝试使用正则表达式解析html时所冒的风险。在您的特定示例中,您应该是安全的


更好的选择是用python编写一个关键字,并使用一个真正的HTML解析库来解析数据。有关代码示例,请参阅。

如何在Robot框架中删除HTML标记。什么是re以及如何在Robot框架中导入re请解释??re是python中的正则表达式请参阅:,关于如何在Robot框架中导入re put
import re
在python代码中你的意思是我需要为此创建库吗?为了避免误解,如果你提供其余的代码,这会很有帮助。据我所知,这就是你想要的,正如“我想删除HTML标记”所述,代码将完全做到这一点。我正在获取工具提示并将其存储在${ToolTipdata}这是代码:${Tooltipdata}执行JavaScript var el=document.evaluate(//table/tbody/tr[1]/td[2]/span),document,null,9,null)。singleNodeValue;return$(el)。data('tooltip')。options.title;Log${Tooltipdata}
*** Keywords ***
| Remove HTML tags
| | [Documentation] | Strip HTML tags from the given string
| | [Arguments]     | ${string}
| | ${result}=      | Evaluate | re.sub(r'<.*?>', '', '''${string}''') | re
| | [Return]        | ${result}

*** Test cases ***
| Example
| | ${Tooltipdata}= | Some keyword which returns the tooltip data
| | ${string}= | Remove HTML tags | ${Tooltipdata}