【问题标题】:How to select a frame with no name or id in robot framework?如何在机器人框架中选择没有名称或 id 的框架?
【发布时间】:2016-02-14 18:59:35
【问题描述】:

我需要选择一个框架,但它没有名称或 ID。它是怎么做到的?

<frame src="sampleSrouce" scrolling="yes" frameborder="0" />
<frame src="sampleSource2" scrolling="yes" frameborder="0" />

谢谢!

【问题讨论】:

  • 有理由不自己设置ID吗? &lt;frame id="myID" src="sampleSource" scrolling="yes" frameborder="0" /&gt;
  • 您是否尝试过设计一个 xpath 来查找具有 src 属性和值为 `"sampleSrouce" 的框架元素?
  • @ProDexorite 这已经是生产中的现有应用程序。因此,不太可能只为自动化测试添加 id。
  • @BryanOakley 这是一个很好的建议。但是,刚刚意识到这不是一个好的解决方案,因为产生的“src”不是固定的。它根据页面而变化。是否有任何类似的方法,就像在 selenium webdriver 中我可以使用 driver.switchTo().frame(1) 一样?

标签: html testing automated-tests robotframework web-testing


【解决方案1】:

我们可以得到xpath计数,然后得到src的属性值。

如果我们得到所需的 src 值,我们可以选择计数器值并创建一个带索引的 xpath。

然后我们可以使用带有xpath的Select frame来选择值。

${count}=    Get Matching Xpath Count    .//div[@dir]/iframe

   :FOR    ${i}    IN RANGE    1    ${count}+1
    \    ${myText}=    Selenium2Library.Get Element Attribute    xpath=//iframe[${i}]@src
    Exit For Loop
Select Frame    xpath=//iframe[2]
Selenium2Library.Input Text    id=text1    test

【讨论】:

  • 这可行,但我没有尝试过,因为我找到了另一个更简单的解决方案
  • 我无法让它与 Chrome 的打印预览 PDF-viewer iframe 一起使用。
【解决方案2】:

所以基本上,我发现解决方案非常简单。我只是使用了指向第二帧的 xpath:

xpath=/html/frameset/frame[2]

【讨论】:

    猜你喜欢
    • 2021-10-31
    • 2012-04-24
    • 2019-03-16
    • 2017-12-07
    • 2014-09-15
    • 1970-01-01
    • 2020-12-13
    • 2011-12-10
    • 2017-06-25
    相关资源
    最近更新 更多