Selenium webdriver Selenium IEDriverServer.exe在虚拟机上崩溃

Selenium webdriver Selenium IEDriverServer.exe在虚拟机上崩溃,selenium-webdriver,crash,virtual-machine,windbg,Selenium Webdriver,Crash,Virtual Machine,Windbg,最近,在虚拟机上使用SeleniumWebDriver运行InternetExplorer自动化时,我遇到了一个间歇性错误。测试正在通过Microsoft测试管理器在虚拟机上运行。我很难弄清楚到底发生了什么 出现此问题时尝试运行的测试记录了以下内容: 异常:OpenQA.Selenium.WebDriverException:对远程WebDriver服务器的URL HTTP请求在60秒后超时。-->System.Net.WebException:操作已超时 当测试失败时,我将异常消息和堆栈跟踪

最近,在虚拟机上使用SeleniumWebDriver运行InternetExplorer自动化时,我遇到了一个间歇性错误。测试正在通过Microsoft测试管理器在虚拟机上运行。我很难弄清楚到底发生了什么

出现此问题时尝试运行的测试记录了以下内容: 异常:OpenQA.Selenium.WebDriverException:对远程WebDriver服务器的URL HTTP请求在60秒后超时。-->System.Net.WebException:操作已超时

当测试失败时,我将异常消息和堆栈跟踪写入一个文件。但在这种情况下,实际上没有堆栈。他期待着更深刻的东西

System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
以下是发生故障时eventviewer的详细信息:

Log Name:      Application
Source:        Application Error
Date:          8/28/2015 9:02:09 AM
Event ID:      1000
Task Category: Application Crashing Events
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      xxxxxxxxxxxxxxxxxx  
Description:
Faulting application name: IEDriverServer.exe, version: 2.44.0.0, time stamp: 0x5449666f
Faulting module name: IED4C2A.tmp, version: 0.0.0.0, time stamp: 0x5449666b
Exception code: 0xc0000005
Fault offset: 0x000a41e6
Faulting process id: 0xf2c
Faulting application start time: 0x01d0e191ad6d3d19
Faulting application path: C:\AutomationDrivers\IEDriverServer.exe
Faulting module path: C:\Users\SACCTO~Z\AppData\Local\Temp\IED4C2A.tmp
Report Id: fd4f5070-4d84-11e5-891b-00155d6e673e
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2015-08-28T13:02:09.000000000Z" />
    <EventRecordID>14302</EventRecordID>
    <Channel>Application</Channel>
    <Computer>xxxxxxxxxxxxxxxxxx</Computer>
    <Security />
  </System>
  <EventData>
    <Data>IEDriverServer.exe</Data>
    <Data>2.44.0.0</Data>
    <Data>5449666f</Data>
    <Data>IED4C2A.tmp</Data>
    <Data>0.0.0.0</Data>
    <Data>5449666b</Data>
    <Data>c0000005</Data>
    <Data>000a41e6</Data>
    <Data>f2c</Data>
    <Data>01d0e191ad6d3d19</Data>
    <Data>C:\AutomationDrivers\IEDriverServer.exe</Data>
    <Data>C:\Users\TASKBO~1\AppData\Local\Temp\IED4C2A.tmp</Data>
    <Data>fd4f5070-4d84-11e5-891b-00155d6e673e</Data>
  </EventData>
</Event>
日志名称:应用程序
来源:应用程序错误
日期:2015年8月28日上午9:02:09
事件编号:1000
任务类别:应用程序崩溃事件
级别:错误
关键词:经典
用户:不适用
计算机:XXXXXXXXXXXX
说明:
出现故障的应用程序名称:IEDriverServer.exe,版本:2.44.0.0,时间戳:0x5449666f
故障模块名称:IED4C2A.tmp,版本:0.0.0.0,时间戳:0x5449666b
异常代码:0xc0000005
故障偏移量:0x000a41e6
出错进程id:0xf2c
故障应用程序启动时间:0x01d0e191ad6d3d19
出现故障的应用程序路径:C:\AutomationDrivers\IEDriversServer.exe
故障模块路径:C:\Users\SACCTO~Z\AppData\Local\Temp\IED4C2A.tmp
报告Id:fd4f5070-4d84-11e5-891b-00155d6e673e
事件Xml:
1000
2.
100
0x8000000000000
14302
应用
XXXXXXXXXXXXXXXX
IEDriverServer.exe
2.44.0.0
5449666f
IED4C2A.tmp
0.0.0.0
5449666b
c0000005
000a41e6
f2c
01d0e191ad6d3d19
C:\AutomationDrivers\IEDriversServer.exe
C:\Users\TASKBO~1\AppData\Local\Temp\IED4C2A.tmp
fd4f5070-4d84-11e5-891b-00155d6e673e
我可以使用内置在VisualStudio中的测试运行程序在本地运行相同的测试,而不会出现任何问题。虚拟机大约有1.5 Gig的内存,在测试运行时,不会占用超过一半的内存。CPU保持在相当低的水平


我对要看的东西没什么概念了。任何想法/想法都值得赞赏。谢谢。

我写了两篇文章,介绍如何在显示Windows错误报告对话框时创建良好的崩溃转储

第一篇文章基本上描述了:

  • 等待WER对话框显示
  • 附加调试器(类似于)
  • 按“调试”按钮
  • 确认已附加调试器的警告
  • 当要求使用所选调试器时,单击“否”
  • 现在,在调试器中执行您喜欢的任何操作,例如,使用
    .dump/ma seleniumcrash.dmp
  • 如果您不太熟悉使用调试器,请尝试第二篇文章,即:

  • 等待WER对话框显示
  • 为崩溃的应用程序创建注册表项。确保将
    DumpType
    设置为2,并且文件夹可写(检查NTFS权限)
  • 关闭WER对话框
  • 一旦有了良好的崩溃转储,就可以从中获得更多信息,例如调用堆栈和.NET调用堆栈


    事件查看器异常代码为
    0xc0000005
    ,这是一种访问冲突NullReferenceException。

    我写了两篇文章,介绍如何在显示Windows错误报告对话框时创建良好的崩溃转储

    第一篇文章基本上描述了:

  • 等待WER对话框显示
  • 附加调试器(类似于)
  • 按“调试”按钮
  • 确认已附加调试器的警告
  • 当要求使用所选调试器时,单击“否”
  • 现在,在调试器中执行您喜欢的任何操作,例如,使用
    .dump/ma seleniumcrash.dmp
  • 如果您不太熟悉使用调试器,请尝试第二篇文章,即:

  • 等待WER对话框显示
  • 为崩溃的应用程序创建注册表项。确保将
    DumpType
    设置为2,并且文件夹可写(检查NTFS权限)
  • 关闭WER对话框
  • 一旦有了良好的崩溃转储,就可以从中获得更多信息,例如调用堆栈和.NET调用堆栈


    事件查看器异常代码为
    0xc0000005
    ,这是一种访问冲突NullReferenceException。

    添加了注册表项项,但是能够发生错误(仍然不知道为什么),但是没有将任何内容写入本地转储文件没有重新启动VM,因此可能是没有DumpFolder输出的原因。通过消除过程来尝试和隔离导致这种情况的有问题的测试代码,但到目前为止,这是非常困难的。正在沿着先获取转储文件的路径前进。可能应该尝试附加调试器。已启用IEDriverServer.exe日志记录,并发现有问题的代码是使用Selenium双击操作的地方。提出了一个笨拙的解决方案,双击,然后显式等待,看看是否出现了所需的导航到下一个UI web屏幕。如果没有,则再次执行双击操作并等待。我真的不明白问题的根源。可能是Selenium双击错误,自动化代码中出现了一些奇怪的东西,或者UI中出现了一些奇怪的东西。添加了注册表项,但是能够发生错误(仍然不知道为什么),但是没有写入LocalDump文件的任何内容没有重新启动VM,因此可能是没有DumpFolder输出的原因。通过消除过程来尝试和隔离导致这种情况的有问题的测试代码,但到目前为止,这是非常困难的。正在沿着先获取转储文件的路径前进。