考虑到运行自动化测试需要Selenium服务器和web驱动程序的本地副本,即.
是否有任何方法运行web服务,例如,当用户单击按钮时,Selenium脚本将为他们执行?例如,一个机器人可以自动化tweet,即https://github.com/santafebound/twitter-story-teller,而不实际引用Twitter oAuth API,因为自动化是在用户的机器上本地完成的,即打开浏览器、输入信息和使用鼠标单击和键盘事件的tweet?这只是一个具体的例子,但这个问题同样适用于任何其他类型的硒自动化测试。
这种方法有什么固有的局限性吗?对我来说有点危险,所以我在想,也许浏览器以某种方式阻止了这类事情的正常运行?
发布于 2016-09-12 14:34:41
没有什么可以阻止您根据对webservice的调用来驱动selenium。通过运行Selenium来实现一些完全符合您要求的代码并不难。Twitter这样的服务通常通过使用各种技术来限制这种行为,比如节流(限制您可以发出的请求的数量),或者强制您登录,只允许使用CAPTCHA进行身份验证,显然不能用Selenium进行解析。
事实上,如果您真的想使用Selenium,那么您可以将HTTP请求作为POST发送到服务器上(有效地实现您自己的“浏览器”而没有UI)。几年前,我遇到的一些最好的编程乐趣就是构建一个机器人来玩一个基于浏览器的游戏,只需直接发送帖子和获取请求,并解析HTML以确定适当的响应。
https://softwareengineering.stackexchange.com/questions/330853
复制相似问题