Robot Framework XPath 正则表达式查询

问题描述 投票:0回答:1

我在 Robot Framework 中编写自动化脚本时遇到了 XPath 问题,导致数据检索失败。下面是一个 HTML 示例:

<div class="content">
  <x-html-3348724a>
    <x-body-3348724a>

x-body 和 x-html 的序列号是动态的,不是固定的。我想咨询如何使用正则表达式为x-body指定数据。

谢谢你。

尝试了以下方法均失败:

xpath=//div[@class="content"]//*[starts-with(x-body)]
xpath=//div[@class="content"]//x-body(.*)
xpath=//div[@class="mail-content"]//^x-body
python regex xpath robotframework
1个回答
0
投票

下面是您可以使用 Robot Framework 中的 XPath 和正则表达式从 HTML 中的动态元素检索数据的代码示例:

*** Settings ***
Library           SeleniumLibrary

*** Variables ***
${URL}            Your_URL_here

*** Test Cases ***
Retrieve Dynamic Data Using XPath and Regular Expressions
    Open Browser    ${URL}    chrome
    ${x_body_element}    Get Xpath Count    //div[@class="content"]//*[starts-with(local-name(), 'x-body-')]
    ${x_body_index}    Set Variable    1
    :FOR    ${i}    IN RANGE    1    ${x_body_element}+1
    \    ${x_body_text}    Get Text    (//div[@class="content"]//*[starts-with(local-name(), 'x-body-')])[${i}]
    \    Run Keyword If    '${x_body_text}' != ''    Exit For Loop
    \    Run Keyword If    ${i} == ${x_body_element}    Fail    No matching element found
    \    ${x_body_index}    Set Variable    ${i}
    Log    Found x-body element: ${x_body_text}

    Close Browser

${URL}
替换为您正在使用的实际 URL。该脚本将在指定的类中查找带有以“x-body”开头的标签的动态元素,并使用循环检索其文本内容。如果找到匹配的元素,则循环将退出,并且文本内容将被记录。如果没有找到匹配的元素,脚本将失败。

© www.soinside.com 2019 - 2024. All rights reserved.