【问题标题】:Roboframework Selenium - fidn web element and iterate in nested sub-elementsRobot Framework Selenium - 查找 Web 元素并在嵌套的子元素中迭代
【发布时间】:2022-01-05 01:46:31
【问题描述】:

你好,我有这个 HTML 结构:

<div class="1234" role="article">
    <div class="A">
        <h2 class="B">
            <a class="C" href="https://www.test.it">
            </a>
        </h2>
    </div>
    <div class="X">
        <span class="Y">"some text"
        </span>
    </div>
</div>
<div class="1234" role="article">
    <div class="A">
        <h2 class="B">
            <a class="C" href="https://www.test2.it">
            </a>
        </h2>
    </div>
    <div class="X">
        <span class="Y">"some text2"
        </span>
    </div>
</div>

我的目标是使用 role=article 在每个 Div 中进行迭代,并收集相应的 href 和 text (即https://www.test.it - 第一个是“一些文本”)

我已经创建了一个基本的 for 循环:

${elements}=    Get WebElements     xpath://div[contains(@role, 'article')]
    FOR    ${element}    IN    @{elements}
        Log To Console    ${element.get_attribute('href')}
    END

但我无法弄清楚如何获取我需要的子元素。 任何帮助都非常感谢。 非常感谢

###更新 这适用于href,但我无法获取跨度文本 ${elements}= 获取 WebElements xpath://div[contains(@role, 'article')] FOR ${element} IN @{elements} ${sub1}= 设置变量 ${element.find_element_by_xpath(".//h2//a[contains(@class, 'C')]")} 登录到控制台 ${sub1.get_attribute('href')} 结束

【问题讨论】:

    标签: selenium robotframework


    【解决方案1】:

    要使用role="article" 在每个DIV 中迭代并收集相应的hreftext,您可以使用以下Locator Strategies

    • href:

      ${elements}= Get WebElements xpath://div[contains(@role, 'article')] 
        FOR ${element} IN @{elements} 
            ${sub1}= Set Variable ${element.find_element_by_xpath(".//h2/a[@class='C']")} 
            Log To Console ${sub1.get_attribute('href')} 
        END
      
    • 文字

      ${elements}= Get WebElements xpath://div[contains(@role, 'article')] 
        FOR ${element} IN @{elements} 
            ${sub1}= Set Variable ${element.find_element_by_xpath(".//div[@class='X']/span[@class='Y']")} 
            Log To Console ${sub1.get_attribute('innerHTML')} 
        END
      

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2019-05-15
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2012-03-22
      相关资源
      最近更新 更多