RobotFramework:如何将页面元素ID值存入变量及匹配方法问题
刚好这两个问题都是Robot Framework UI自动化中经常遇到的,我来给你详细解答:
问题1:将页面元素ID对应的值存入变量
要把元素的内容或属性值存入变量,核心是用Robot Framework提供的元素内容获取关键字,分两种场景:
- 如果要获取元素的显示文本内容(比如div、span标签里的文字),使用
Get Text关键字,结合ID定位器:
${element_text}= Get Text id=your_element_id
举个例子:如果页面有<p id="welcome_msg">Hello, User!</p>,执行上面的代码后,${element_text}就会被赋值为Hello, User!。
- 如果要获取元素的属性值(比如输入框的
value、按钮的class等),使用Get Attribute关键字,需要额外指定要获取的属性名称:
# 获取输入框的value属性值 ${input_value}= Get Attribute id=your_input_id value
比如对于<input id="phone" value="13800138000">,这段代码会把13800138000存入${input_value}变量。
问题2:使用Should Match/Should Match Regexp验证元素内容
你提到的问题本质是:Should Match和Should Match Regexp的第一个参数要求是字符串类型,而不是元素定位器(比如id:xxx),所以不能直接把定位器传给它。解决思路是先把元素的内容取到变量里,再用变量来做匹配验证。
针对你说的ID为igtxtctl00_wtbHouseNumber的元素,假设这是一个输入框(需要验证它的输入值),具体步骤如下:
- 先获取元素的
value属性值到变量:
${house_number}= Get Attribute id=igtxtctl00_wtbHouseNumber value
如果这个元素是静态文本标签(比如div),就换成Get Text:
${house_number}= Get Text id=igtxtctl00_wtbHouseNumber
- 用
Should Match Regexp验证变量内容是否符合正则规则:
# 示例:验证房屋编号只能包含数字和大小写字母 Should Match Regexp ${house_number} ^[0-9A-Za-z]+$ 房屋编号格式错误,只能包含数字和字母
其中第三个参数msg是可选的,用来自定义验证失败时的报错信息,让排查问题更直观。
如果是需要精确匹配字符串(不是正则),就用Should Match:
Should Match ${house_number} 123MainSt 房屋编号与预期值不符
内容的提问来源于stack exchange,提问作者tijnn
相关产品推荐
相关产品推荐

