Selenium IEDriverServer.exe在虚拟机上崩溃

时间:2015-08-28 17:51:04

标签: selenium-webdriver crash virtual-machine

最近,在虚拟机上使用Selenium WebDriver运行Internet Explorer Automation时,我遇到了间歇性错误。测试正在通过Microsoft Test Manger在虚拟机上运行。我很难搞清楚发生了什么。

IEDriverServer.exe crash

在发生此问题时尝试运行的测试记录以下内容: exception:OpenQA.Selenium.WebDriverException:对URL http://localhost:56645/session/2762cafb-d3c9-4d9a-a0a5-05463e69b7b7/moveto的远程WebDriver服务器的HTTP请求在60秒后超时。 ---> System.Net.WebException:操作已超时

当测试失败时,我会将Exception消息和堆栈跟踪写入文件。但在这种情况下,确实没有堆栈。期待更深层次的事情。

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>

我可以使用Visual Studio内置的测试运行器在本地运行相同的测试,没有任何问题。 VM拥有大约1.5千兆的内存,并且在测试运行时从不占用超过一半的内存。 CPU保持相当低的水平。

对于需要关注的事情,我的想法已经不合时宜了。任何想法/想法都赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

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

第一篇文章基本上描述了how to attach a debugger

  1. 等待WER对话框显示
  2. 附加调试器(如
  3. 按“调试”按钮
  4. 确认已附加调试器的警告
  5. 当要求使用所选调试器
  6. 时,单击“否”
  7. 现在在调试器中做任何你喜欢的事情,例如使用.dump /ma seleniumcrash.dmp
  8. 创建转储

    如果你不太熟悉使用调试器,请尝试第二篇文章,activates LocalDumps just in time,即:

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

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