作者:evon0207165 | 来源:互联网 | 2023-09-03 14:28
我创建了一个检查以下内容的测试:
您在远程 Windows 客户端(Firefox/Chrome 或 Edge 使用它们的webdriver
和selenium
服务器)上打开浏览器,浏览器打开一个 URL,Facebook 或 Paypal 或其他网络钓鱼 URL。
它会根据其转到我选择的元素(电子邮件/用户名/密码)xpath
,单击它,并根据我的网络钓鱼签名检查该站点是否被阻止或允许。
现在,此测试有效,但如果我想稍后添加更多站点进行测试,则必须为每个新站点创建新测试或更改xpath
我拥有的测试。这不是一种非常可靠的测试方法(也xpaths
可以在网页上更改)。
我想以更可重用的格式进行相同的测试。
我想做的测试是:
- 打开一个网页。
- 扫描任何表单或输入类型字段。
- 单击一个接一个找到的每个元素,然后等待对每种元素的判断(重定向到阻止页面或单击后页面保持打开状态)。
机器人中是否有任何关键字知道如何处理?
想知道 Robot Framework 是否有类似于已经完成的东西。
回答
您可以尝试使用Get WebElements
带有 xpath 的Selenium 解析所有输入的网页//input
- 这将返回所有元素的列表,然后您可以检查该元素是否未隐藏并单击/填充它。我建议将数据驱动的方法与机器人框架的测试模板一起使用,例如
*** Settings ***
Library Selenium(or any other)
Test Template Scan input elements test
*** Keywords ***
Scan input elements test
[Arguments] ${url} ${selector} ${whatever}
Open webpage ${url}
${inputs}= Get WebElements
FOR ${element} IN @{inputs}
Click Element ${element}
# or do something else
END
Assert or wait for smth ${whatever}
*** Test Cases ***
Scan input elements test facebook.com //input blocked
这里Run Keyword And Return Status
也很有用,所以如果输入不可点击等,您的测试不会失败。但是这样的测试真的很不稳定,因为有超过 9000 种方法可以构建 HTML 表单:)