Selenium 如何定位模态生成的随机id?

Selenium 如何定位模态生成的随机id?,selenium,robotframework,qa,Selenium,Robotframework,Qa,我在用射频测试我的网站。问题是,每次打开模式时,我要输入文本的文本框上都会设置不同的idlocator。如何获取此定位器的值 我本应该尝试获取元素属性,但它不能支持我的问题,因为它仍然需要特定的定位器 感谢您分享您的想法在ROBOT Framework RF中,定位器可以通过多种方式访问。请参考并阅读此链接: 访问定位器的最常见方式是通过id,例如: Input Text id:username # Element with id 'username'. Input Text id:pass

我在用射频测试我的网站。问题是,每次打开模式时,我要输入文本的文本框上都会设置不同的idlocator。如何获取此定位器的值

我本应该尝试获取元素属性,但它不能支持我的问题,因为它仍然需要特定的定位器


感谢您分享您的想法

在ROBOT Framework RF中,定位器可以通过多种方式访问。请参考并阅读此链接:

访问定位器的最常见方式是通过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”元素是动态的,它会不断变化,那么最好的替代方法是使用绝对XPATH表达式或CSS选择器。在web浏览器中安装XPATH附加组件。对于firefox,只需安装ChroPath

然后,获取用户名和密码文本框的绝对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}
...

这应该行得通。请让我知道这是否有帮助。

请参阅:SO的期望是,用户提出问题时不仅要进行研究以回答自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参阅:花些时间阅读这篇文章。如果有人建议您获取元素属性,这意味着您应该使用一个xpath定位器,该定位器除其他可能的值外,还包含您要查找的属性值。当元素没有ID或动态ID时,必须通过xpath、名称、部分链接文本等其他方式来定位元素。如果您的原始帖子中没有任何HTML代码示例,我们将无法帮助您。如果您可以发送url,我可能可以使某些内容正常工作。我已经成功地完成了这项工作,通过提取整个html并对其进行解析。