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

时间:2019-02-11 02:18:58

标签: selenium robotframework qa

我正在使用RF测试我的网站。问题是,每次打开模态时,将在我要输入文本的文本框中设置一个不同的id(定位符)。您如何获得此定位器的价值?

本来应该尝试 获取元素属性 ,但是由于它仍然需要特定的定位器,因此它无法支持我的问题。

感谢您分享您的想法

2 个答案:

答案 0 :(得分:0)

在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}
...

这应该有效。请告诉我是否有帮助。

答案 1 :(得分:0)

请尝试支持动态ID的ChroPath,也可以为任何自定义属性生成相对的xpath。

ChroPath

ID为-的相对xpath enter image description here

没有id的相对xpath enter image description here