【问题标题】:How to locate random id generated by a modal?如何定位模态生成的随机 id?
【发布时间】:2019-07-04 12:15:14
【问题描述】:

我正在使用 RF 测试我的网站。问题是,每次打开模式时,都会在我要输入文本的文本框上设置不同的 id(locator)。你如何获得这个定位器的价值?

我应该尝试 Get Element Attribute 但它无法支持我的问题,因为它仍然需要特定的定位器。

感谢您分享您的想法

【问题讨论】:

  • 请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
  • 花点时间阅读这篇文章。 how to ask a good question
  • 如果建议您获取元素属性,则意味着您应该使用 xpath 定位器,其中包含您正在寻找的属性值以及其他可能的值。当元素没有 ID 或有动态 ID 时,您必须通过 xpath 或名称、部分链接文本等使用其他方式来定位元素。如果您的原始帖子中没有任何示例 HTML 代码,我们将无法为您提供帮助。
  • 如果您可以发送网址,我可能会有所帮助。通过提取整个 html 并对其进行解析,我已经成功地做到了这一点。

标签: selenium robotframework qa


【解决方案1】:

在 ROBOT Framework (RF) 中,可以通过多种方式访问​​定位器。请参考并阅读此链接:http://robotframework.org/Selenium2Library/Selenium2Library.html

访问定位器最常见的方式是通过 id,例如:

Input Text  id:username # Element with id 'username'.
Input Text  id:password # Element with id 'password'. you can also use 'Input Password' keyword.

但是,如果 'id' 元素是如此动态以至于它不断变化,那么最好的选择是使用 ABSOLUTE XPATH 表达式CSS 选择器。在 Web 浏览器中安装 XPATH 插件。对于 Firefox,只需安装 ChroPath。

然后,获取该用户名和密码文本框的 ABSOLUTE Xpath 元素。假设我们已经知道绝对 xpath 表达式,那么在 ROBOT 中,您可以像下面这样编写。

${login_absolute_xpath}=  Set Variable   xpath=/html[1]//div[7]/form[1]/div[1]/input[1]
${password_absolute_xpath}=  Set Variable   xpath=/html[1]//div[7]/form[1]/div[2]/input[1]

Wait Until Page Contains Element   xpath=${login_absolute_xpath}
Input Text   xpath=${login_absolute_xpath}
Input Text   xpath=${password_absolute_xpath}
...

这应该可行。如果这有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多