我有一个用Java编写的应用程序,可以在特定网站上创建电子邮件帐户。由于某些原因,我需要在不同的windows用户帐户下运行程序的每个迭代。
我正在使用SeleniumGrid(RemoteWebDriver)从集线器服务器连接到远程服务器(Grid)。
假设我在远程windows服务器上设置了多个windows用户帐户(如“account639”、“account729”、“account889”等),并且我希望我的集线器分别连接到每个帐户并执行Java代码
我的问题是:如何指定代码应该在网格服务器中的哪个windows用户帐户上执行?
据我所知,我可以添加到RemoteWebDriver的两个参数是远程服务器的主机名(或IP)和端口。我看不到任何选项来指定它应该在哪个windows用户帐户下运行。
由于远程服务器下的所有windows用户帐户的主机名(IP)都相同,我如何告诉“中心”每次在不同的windows用户帐户下执行代码段?
我看到的唯一可能性是在不同的端口下运行Selenium Grid的每个实例,并使用端口号作为区分两个windows用户帐户的方法(并确保我同时登录到两个用户帐户)。
例如,我可以在“account639”上设置Selenium Grid以监听端口6399,在“7299”上设置Selenium Grid以监听端口,这样我就知道代码是在适当的windows帐户下执行的。
这是否可行?有没有一种更直接的方法不使用端口就可以做到这一点(即,是否可以像指定端口一样指定集线器应该连接到哪个windows用户帐户?)
这在技术上是不可能与硒网格。但是,您可以创建一个包装selenium网格的windows服务。
安装windows服务后,您可以选择希望服务作为谁运行。
这里有一篇关于如何将windows服务作为帐户运行的文章:https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sys_srv_logon_user.mspx?mfr=true
我想你可以通过在不同的端口上安装多个窗口服务来实现你想要的,作为不同的用户。
与每个windows用户一起登录,并在不同端口上的每个帐户下运行selenium节点(例如:5555565557)。如果每个节点都有相同的设置,我指的是相同的浏览器,相同的浏览器版本,等等。。。您可以使用“applicationName”,这是一种受支持但没有文档记录的额外功能。使用此功能,您可以区分节点。例如,在nodeConfig中:
...
{
"applicationName":"account639",
"platform":"WINDOWS",
"browserName":"chrome",
"maxInstances":5,
"version":"40",
"seleniumProtocol":"WebDriver"
},
...
之后,您可以设置远程WebDriver,以便在属于特定寡妇用户帐户的特定节点上运行测试。例如:
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("applicationName", "account639");
...
WebDriver driver = new RemoteWebDriver(new URL(this.getHubUrl()), dc);
如果您想使用更多的额外功能,您可以创建自己的定制功能匹配器(在Google中搜索:“selenium grid custom capability Matcher”),但如果您只需要一个额外功能,我建议使用前面提到的功能。
希望这能有所帮助。
问题内容: 我正在设置Selenium Grid服务器,并且已经在本地计算机上成功完成了工作,我想知道如何提供主机名,因此如果其他测试人员想要注册到集线器,他们应该能够做到这一点,这就是我所做的至今: 在我的本地计算机上(假设我将允许其他测试人员在此处注册该节点) 在本地计算机上启动集线器: 启动节点 我查看中心的状态:localhost:4444 / grid / console 现在,我的问题
问题内容: 我想知道是否有人可以阐明一个让我们有些头疼的问题。 我们对Selenium Grid 的和的含义感到困惑。我们认为,这是可以在单个节点上运行的测试会话的总数。而且,我们还认为测试是可以打开的浏览器总数。 还是该节点可用的浏览器总数? 我们使用的命令是: 我们认为(上面)使用节点的方式默认为5个并发测试会话。 每个测试都有20个可用的浏览器吗? 还是每个测试会话与其他测试会话共享一个池中
我可以用硒格的四库里吗?如果远程机器会有sikuli库? 另一件事:我在 http://mvnrepository.com上找不到org.sikuli.script的maven dependecies/还有其他方法可以将jar包含到maven中吗?
问题: 我想在AWS上运行Selenium Grid,并希望使用他们的动态扩展。缩小规模,它只会终止一个实例...这意味着一个节点可以就这样消失。不是我想要的行为,但使用脚本或生命周期挂钩,我可以尝试确保节点上的任何会话在终止之前都不是活动的。 似乎我可以点击这个API来断开节点与集线器的连接:http://NODE-IP:5555/selenium-服务器/驱动程序/?cmd=关闭Seleniu
下面是我的代码,我正在使用它来传递浏览器、节点和枢纽港来启动浏览器并执行测试,但是我得到了异常,尽管我能够设置selenium服务器。我把错误贴在代码下面。我使用mac book、Selenium3.4、Firefox55和Gecko0.18.0 下面是命令提示符中的日志
我正在为我的自动化套件使用Selenium Hub和Node设置。到目前为止,我正在使用以下命令在远程机器上手动启动集线器和节点。 java-jarselenium-server-standalone-3.141.59.jar-角色集线器 java-Dwebdriver.chrome.driver=chromedriver.exe-jarselenium-server-standalone-3.1