我想在机器人框架日志文件中记录“摘要文本”表单内段落中的消息。然而这个
paragraph
没有 id,也没有类。在这种情况下,我怎样才能获取该文本以将其记录到 Robot Framework 上?
<div id="results">
<h2>Results</h2>
<form id="form_results" method="POST" >
<p>Summary text</p>
....
</form>
...
</div>
我尝试像这样“
Log id: form_results:p
”,但它不起作用:
*** Keywords ***
Log message
Log id:form_results:p
您的方法有两个问题 - 元素的定位器以及获取其文本的方式;让我们从后者开始,因为它更容易。
RF 是一个基于“操作”的框架 - 您指示它执行某些操作,并传递参数来控制它。其中一个这样的操作/关键字是
Log
- 它会记录一条消息。要执行您想要的操作,获取文本然后记录它,您必须执行这两个操作 - 首先获取文本并分配给 var:
${text}= Get Text ${my locator}
,然后记录 var 的值:
Log ${text}
说到另一个问题——定位器。您指定的内容 - id:form_results:p - 不是有效的;它被描述为“id 属性等于 form_result:p 的元素”,而您可能的意思是“id 属性等于 form_result 的元素,然后是其子 p”。 这里有 3 种不同的定位器策略来实现这一目标:
css:form#form_result p # a css locator
xpath://form[@id="form_result"] # an xpath one
id:form_result >> name:p # mixing two locator strategies, first an id one, then name
使用任何选项代替上面的
${my locator}
,应该没问题。