我需要在运行时在服务器和运行 Selenium Web 驱动程序的多个远程客户端之间分发业务逻辑。
我已经研究了对象序列化,RMI,动态下载JAR,通过Java和硒网格的硒化。
详细信息:预计多个远程客户端将通过互联网上的 JMS 轮询队列,以获取在给定网站上执行某些工作的订单。每个客户端将启动Selenium WebDriver,在客户端运行时之前以未预定义(或仅以非常抽象的术语)的方式遍历该网站,然后返回轮询队列,直到再次调用。
挑战在于,客户不会事先知道网站和确切的遍历步骤。我可以在服务器上提前定义抽象的步骤/方法,但客户端将依赖于某种下载的数据来精确地获取Selenium命令列表。在这些步骤中还需要一些循环 ()。repeat until...
例如,如果我们定义 example1.com:void login()
点击“用户名”字段
发送密钥“用户名”
点击“密码”字段
发送密钥“密码”
点击“提交”
而对于 example2.com 将是:void login()
点击“登录”框
等待“用户名”字段出现
点击“用户名”字段
点击“继续”
等。
研究:
序列化:仅传输对象变量,而不传输对象逻辑。
RMI:对象逻辑在服务器上执行,而不是在客户端上执行,因此它无法与客户端的Selenium实例进行交互。
硒:可能无法直接在 Java 下运行。使用硒运行器-java可能是可能的,但这似乎只是命令行,这将限制与客户端软件的交互,从而限制功能
硒网格:节点(客户端)必须始终连接到集线器(服务器),这不能保证
如何在运行时将业务逻辑从服务器分发到客户端?
隔江千里
相关分类