热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何扫描页面以查找输入类型元素并逐个单击所有元素?

我创建了一个检查以下内容的测试:您在远程Windows客户端(Firefox/Chrome或Edge使用它们的webdriver和

我创建了一个检查以下内容的测试:

您在远程 Windows 客户端(Firefox/Chrome 或 Edge 使用它们的webdriverselenium服务器)上打开浏览器,浏览器打开一个 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 表单:)






推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
evon0207165
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有