簡體   English   中英

從 html 元素獲取文本

[英]Get text from html element

我想在“摘要文本”表單中的段落中登錄機器人框架日志文件。 然而,這paragraph沒有 id 也沒有 class。 在這種情況下,如何獲取該文本以將其記錄在 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 是一個基於“動作”的框架——你指示它做一些動作,通過 arguments 來控制它。 一個這樣的操作/關鍵字是Log one - 它會記錄一條消息。
你調用了它,並傳遞了“id:form_results:p”——現在,為什么它會做與記錄該字符串不同的事情? 對你來說,它是一個定位器,你可能期望“它應該記錄元素的文本,因為這顯然是一個定位器” - 但是,它怎么知道這是你的意圖,只是因為它看起來像一個定位器? 在不同的情況下,可能不希望這樣做; 所以關鍵字執行它設計的唯一操作 - 記錄傳遞的任何字符串或變量。

要執行您想要的操作,獲取文本然后記錄它,您必須執行這兩個操作 - 首先獲取文本並分配給一個 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} ,你應該沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM