- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 WebDriver 的 .NET 绑定(bind)通过 Grid2 同时运行测试。单独运行测试是没有问题的,但是当通过 Grid 运行多个测试时,偶尔会出现以下错误,并且当它出现一次时通常会有多个测试由于相同的原因而失败:
Unable to bind to locking port 7054 within 45000 ms Build info: version: '2.29.0', revision: '58258c3', time: '2013-01-17 22:46:35' System info: os.name: 'Windows Server 2008 R2', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_11' Driver info: driver.version: FirefoxDriver
我们已经将问题的根源追溯到我们创建 RemoteWebDriver 实例的地方,它看起来像:
var desiredCapabilites = new DesiredCapabilities();
desiredCapabilites.SetCapability(CapabilityType.BrowserName, "firefox");
desiredCapabilites.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Windows));
desiredCapabilites.SetCapability(CapabilityType.Version, "14.0.1");
try { _driver = new RemoteWebDriver(new Uri("http://qwautomation:4444/wd/hub"), desiredCapabilites, TimeSpan.FromSeconds(180.0)); }
catch (Exception ex) { Notes.Add("AUTOMATION ERROR: This error originates from MasterSetup.cs (line 47)"); Notes.Add("AUTOMATION ERROR: " + ex.Message); Exception("AUTOMATION ERROR: This error originates from MasterSetup.cs (line 47)"); }
其中,qwautomation 是托管我们的 Grid Hub 的机器。我的假设是 Hub 正在将测试分派(dispatch)到端口上已经包含 FireFox 实例的节点,或者 JVM 没有正确处理 session (因为我可以在节点机器的文件夹中看到带有 WebDriver session ID 的文件夹临时文件夹)。我已经为节点和集线器编写了配置文件,我将在下面发布。如果无法绑定(bind)到 FireFox 端口,我不知道是否有办法“排队”测试。
枢纽
{
"port": 4444,
"newSessionWaitTimeout": 30000,
"nodePolling": 5000,
"cleanUpCycle": 5000,
"timeout": 300000,
"browserTimeout": 0,
"maxSession": 1
}
节点
{
"capabilities":
[
{
"browserName":"firefox",
"maxInstances":1
}
],
"configuration":
{
"cleanUpCycle":2000,
"timeout":180000,
"maxSession":5,
"hubPort":4444,
"hubHost":"qwautomation"
}
}
编辑:我已经从 DesiredCapabilities 对象中删除了“版本”功能,并且在多次测试运行后没有看到错误表面。我不知道这是否是一个实际的解决方案,但它似乎至少降低了出现异常的风险。
最佳答案
我发现重启服务器通常可以解决问题。如果问题仍然存在,请尝试通过网格运行更少的连续测试或增加 Selenium 节点上的内存容量。
关于c# - RemoteWebDriver 无法在 45000 毫秒内绑定(bind)到锁定端口 7054,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232806/
有一种方法可以将本地配置文件传递给远程驱动程序: FirefoxProfile p = new FirefoxProfile(); DesiredCapabilities capabi
运行测试时不使用 RemoteWebDriver,仅使用 IWebdriver driver = new FireFoxDriver(); 我可以很好地运行我的测试,查找元素,使用 XPath 表达式
当通过 selenium 网格运行时,我需要 chrome 来启动最大化。 这是我现在初始化它的方法: Selenium selenium = new DefaultSelenium("localho
我有自己的 Selenium 网格和不同的 Windows 机器。其中之一是 Windows 10 机器。 Chrome 和 Firefox 可以工作,但我无法让 Edge 运行。 我的异常(exce
我正在尝试开发一套类(class)来每晚测试我的网站功能,我在 Chrome、Firefox、Edge 和 IE 中执行此操作。因为有时 Selenium 找不到我需要的元素,例如在给出错误之前截取浏
我正在尝试通过以下代码使用 RemoteWebDriver 启动 chrome 浏览器。 File file = new File("E:\\S\\chromedriver.exe"); //path
我正在使用 RemoteWebDriver 并尝试在 Internet Explorer 下的远程计算机上执行一些 UI 测试: RemoteWebDriver driver = new Remote
我试图在 Sauce On Demand 基础设施上运行基于 Sikuli WebDriver 的测试。但我对 RemoteWebDriver 有疑问。 我有这个 BaseSikuliWebDrive
这里我创建了一个集线器和一个节点,我想创建另一个节点。 如何使用多个节点初始化我的 RemoteWebdriver。 public void setUp() throws MalformedURLEx
我正在尝试使用 Selenium 网格设置来自动化 Chrome、Ie、Edge 和 Firefox。Hub 设置在我的 Selenium 测试无法访问的另一台机器上。 我的一些测试需要更改浏览器的首
有没有办法获得带标题的 Selenium 屏幕截图?我已经尝试过下面的代码,但屏幕截图没有标题。我有一个测试用例,需要单击链接并确保该操作必须进入新选项卡,因此作为证据,我必须附加捕获有两个选项卡。
如何从公司代理后面通过 RemoteWebDriver 连接到 Selenium 网格,例如 BrowserStack? 被测应用程序在代理之外,可从 BrowserStack 自由访问。 这Usin
我正在使用 Selenium 并进行测试,这些测试会随机选择它们运行的浏览器。 我有一些测试与国际化相关的功能,所以我需要让浏览器指定浏览器语言。 我最好的猜测是我需要使用 SetCapabili
RemoteWebDriver 是 Selenium 2.0 中 DefaultSelenium 的替代品还是可以将两者结合使用? 最佳答案 RemoteWebDriver 只是用于连接到远程 sel
当我尝试使用 var element = webdriver.FindElementByXPath("/"); 或者 var elements = webdriver.FindElementsByXP
查看RemoteWebDriver的源代码,每个操作,包括获取刚刚获得的WebElement的文本,都需要向浏览器发送一个单独的命令。我担心在高度动态的 Javascript Web 应用程序中,这可
我实际上找不到一个很好的解释来解释 RemoteWebDriver 和 Selenium 中的 WebDriver 之间的区别。 下面是 eclipse 告诉我将 WebDriver 转换为 Remo
我正在尝试将 RemoteWebDriver 与 google.com 上的 xpath 定位器一起使用,这是来自运行 firefox 的节点的日志。它接收所有这些命令但不执行它们。除了打开 Goog
当我使用 HtmlUnitDriver 时,我可以设置自己的 browserVersion,如下所示: private HtmlUnitDriver initDriver() { Browse
如果我使用网络驱动程序,那么它可以完美运行 driver = new PhantomJSDriver(capabilities); driver.executePhantomJS( "var page
我是一名优秀的程序员,十分优秀!