我最近刚接触机器人框架,我似乎无法在任何地方找到我的确切问题的答案。
上下文:我需要浏览页面上的所有标题,直到找到由全局变量确定的特定标题。 UI 没有唯一的 id,因此当我输入标题定位器时,我会得到 20 个或更多与此 XPath 匹配的元素。
还有分页,这意味着我要查找的标题可能在另一页上。
我的全局变量,即我正在寻找的标题,是
${audience_name_value}
,我在另一个关键字中获取它的值。我认为这一点是有效的,因为当这个标题位于同一页面上时,测试通过关键字
Page Should Contain Element ${current_page['audience_name_card_holder_title']}${audience_name_value}")]
.
问题是当我要查找的标题位于第二页或第三页等时
我想迭代每个标题,直到找到正确的标题,或者单击下一个箭头继续此搜索。
起初,我收到错误:
TypeError: Expected argument 1 to be a list or list-like, got string instead.
the created audience is in the inactive custom audience section
${elements}= Get WebElements xpath://*[@id="pageContainer"]//div[contains(@class,"audienceCard__header__name")]/a
FOR ${element} IN @{elements}
${text}= Get Text ${element}
Exit For Loop If ${text} == ${audience_name_value}
END
所以我尝试在下面创建一个列表,但现在我不断收到此错误:
Evaluating expression 'RBT 2021-12-21 == RBT 2021-12-21' failed: SyntaxError: invalid syntax (<string>, line 1)
the created audience is in the inactive custom audience section
${elements}= Get WebElements xpath://*[@id="pageContainer"]//div[contains(@class,"audienceCard__header__name")]/a
${list}= Create List ${elements}
FOR ${element} IN @{list}
${text}= Get Text ${element}
Exit For Loop If ${text} == ${audience_name_value}
END
我没有主意了,似乎找到了标题,但有一个语法错误,我似乎无法修复。
我恳请帮助:D,谢谢!
在此代码中,您创建了一个列表,但它仍然获取从 Web 元素返回的字符串。最好使用如下所示的东西: 首先,捕获 ${var} 中的完整网页内容,然后使用 kw 获取包含您要从 ${var} 中查找的字符串或获取子字符串的行,将其与 kw 运行关键字 If/IF 循环一起使用。