C#:Opera 58.x 的问题 |操作驱动程序 2.42 | Selenium 3.141 - 无法访问 Opera

问题描述

过去 10 年我一直从事产品开发和测试工作,几年前我接管了我们公司对我们的一种产品进行硒测试的研发工作。我正在更新我们的 C# 测试框架,该框架跨一系列浏览器测试我们产品的网络服务器功能。 PM 最近添加的浏览器之一是 Opera。目前,我们在我们的框架中使用以下版本控制:

Selenium WebDriver:V3.141.0.0 Selenium WebDriver.Support:V3.141.0.0 Operadriver_win64:V2.42 Opera 浏览器:58.0.3135.127

PM 指定我们必须确保我们为客户支持 Opera 58.x,因为这将在我们的下一个产品版本中记录给客户,因此很遗憾,我不得不针对此特定版本进行测试。

我在网上做了一些关于自动化 Opera 的广泛阅读。我从 GitHub 确定我需要为我的特定 58.x 版本的 Opera 安装operachromiumdriver v2.42。

I was a bit confused by this error because I can clearly see Opera started. So,I got looking at the logging for operadriver.exe:

Starting OperaDriver 2.42.3135 (O58) on port 37604
Only local connections are allowed.
[1612215723.848][INFO]: [0d995150afccdcc03195334ce4f36367] COMMAND InitSession {
   "capabilities": {
      "firstMatch": [ {
         "acceptInsecureCerts": true,"browserName": "opera"
      } ]
   },"desiredCapabilities": {
      "acceptInsecureCerts": true,"browserName": "opera","operaOptions": {
         "args": [ "--user-data-dir=C:\\Users\\System Test\\AppData\\Local\\Google\\Chrome\\Opera\\BlankUserData","--disable-extensions","--remote-debugging-port=37604" ],"binary": "C:\\Users\\System Test\\AppData\\Local\\Programs\\Opera\\58.0.3135.127\\opera.exe"
      }
   }
}
[1612215723.850][INFO]: Populating Preferences file: {
   "alternate_error_pages": {
      "enabled": false
   },"autofill": {
      "enabled": false
   },"browser": {
      "check_default_browser": false
   },"distribution": {
      "import_bookmarks": false,"import_history": false,"import_search_engine": false,"make_chrome_default_for_user": false,"skip_first_run_ui": true
   },"dns_prefetching": {
      "enabled": false
   },"profile": {
      "content_settings": {
         "pattern_pairs": {
            "https://*,*": {
               "media-stream": {
                  "audio": "Default","video": "Default"
               }
            }
         }
      },"default_content_setting_values": {
         "geolocation": 1
      },"default_content_settings": {
         "geolocation": 1,"mouselock": 1,"notifications": 1,"popups": 1,"ppapi-broker": 1
      },"password_manager_enabled": false
   },"safebrowsing": {
      "enabled": false
   },"search": {
      "suggest_enabled": false
   },"translate": {
      "enabled": false
   }
}
[1612215723.854][INFO]: Populating Local State file: {
   "ab_testing": {
      "uid": "MjRlNmUzZmEtNDJmNS00YTI3LWI4YTQtMTk1MTY2YmEwMTU3"
   },"background_mode": {
      "enabled": false
   },"browserjs": {
      "version": "1540378800"
   },"component_updater": {
      "widevine": {
         "up_to_date": false
      }
   },"hardware_acceleration_mode_prevIoUs": true,"location": {
      "country": "us","country_from_server": "unkNown"
   },"partner_content": {
      "version": {
         "default": 61
      }
   },"password_manager": {
      "os_password_blank": false,"os_password_last_changed": "13255103709737702"
   },"shutdown": {
      "num_processes": 2,"num_processes_slow": 1,"performed": true,"type": 2
   },"ssl": {
      "rev_checking": {
         "enabled": false
      }
   },"startup_metric": {
      "last_startup_timestamp": "13256688446647647","last_startup_version": "71.0.3578.98","same_version_startup_count": 19
   },"subresource_filter": {
      "ruleset_version": {
         "checksum": 1918231743,"content": "9.18.0","format": 23
      }
   },"update": {
      "last_verify_time": "13256674004800030"
   },"updateclientdata": {
      "apps": {
         "aemomkdncapdnfajjbbcbdebjljbpmpj": {
            "cohort": "","cohortname": "","dlrc": 5145,"pf": "cc1d9041-3721-4533-b352-426560ac1a21"
         },"gcmjkmgdlgnkkcocmoeiminaijmmjnii": {
            "cohort": "1:bm1:xa9@0.01","cohortname": "M54ToM99","pf": "6fd7e0e8-4cbf-4fa5-9f1e-8f3d1990b5b7"
         },"hfnkpimlhhgieaddgfemjhofmfblmnib": {
            "cohort": "1:jcl:","cohortname": "Auto","pf": "e3b2fb1e-0ebb-45a6-a5e9-6a77ef613f0e"
         },"oimompecagnajdejgnnjijobebaeigek": {
            "cohort": "","pf": "2b5860db-7759-4ddf-b9ad-3ecceb3ec7c8"
         }
      }
   }
}
[1612215723.864][INFO]: Launching Opera: "C:\Users\System Test\AppData\Local\Programs\Opera\58.0.3135.127\opera.exe" --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-extensions --disable-extensions-except="C:\Users\SYstem~1\AppData\Local\Temp\scoped_dir912_5937\internal" --disable-hang-monitor --disable-popup-blocking --disable-presto-profile-migration --disable-prompt-on-repost --disable-sync --disable-update --disable-usage-statistics-question --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --log-level=0 --metrics-recording-only --no-default-browser-check --no-first-run --password-store=basic --ran-launcher --remote-debugging-port=37604 --test-type=webdriver --use-mock-keychain --user-data-dir="C:\Users\System Test\AppData\Local\Google\Chrome\Opera\BlankUserData"
[1612215723.870][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215723.874][DEBUG]: DevTools HTTP Request Failed
[1612215723.953][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215723.954][DEBUG]: DevTools HTTP Request Failed
[1612215724.014][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.016][DEBUG]: DevTools HTTP Request Failed
[1612215724.076][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.079][DEBUG]: DevTools HTTP Request Failed
[1612215724.140][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.141][DEBUG]: DevTools HTTP Request Failed
[1612215724.217][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.220][DEBUG]: DevTools HTTP Request Failed
[1612215724.283][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.285][DEBUG]: DevTools HTTP Request Failed
[1612215724.360][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.364][DEBUG]: DevTools HTTP Request Failed
[1612215724.425][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.448][DEBUG]: DevTools HTTP Request Failed
[1612215724.518][DEBUG]: DevTools HTTP Request: http://localhost:37604/json/version
[1612215724.854][DEBUG]: DevTools HTTP Request Failed
[1612215724.946][INFO]: [0d995150afccdcc03195334ce4f36367] RESPONSE InitSession ERROR unkNown error: Opera Failed to start: crashed
  (Opera not reachable)
  (The process started from chrome location C:\Users\System Test\AppData\Local\Programs\Opera\58.0.3135.127\opera.exe is no longer running,so OperaDriver is assuming that Opera has crashed.)
[1612215724.983][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1612215724.997][DEBUG]: Log type 'browser' lost 0 entries on destruction

当我使用 nunit 作为管理员运行上面的代码时,会依次发生以下 3 件事:

  1. Operadriver.exe 控制台窗口启动
  2. OperaSoftware.OperaWebbrowser.1610649940 控制台窗口启动
  3. Opera.exe 实例启动

此时,nunit 提示本次测试出现如下错误: SystemTest_S7_1200.Communications._45WebServer._456_WebServer_Opera._45001_BasicFunctionality: 设置:OpenQA.Selenium.WebDriverException:未知错误:Opera 无法启动:崩溃 (Opera 无法访问) (从 chrome 位置 C:\Users\System Test\AppData\Local\Programs\Opera\58.0.3135.127\opera.exe 开始的进程不再运行,因此 OperaDriver 假设 Opera 已崩溃。) (驱动程序信息:OperaDriver=2.42.3135 (O58),平台=Windows NT 10.0.17763 x86_64)

[8116:8468:0201/164204.426:ERROR:tcp_socket_win.cc(355)] bind() returned an error: Only one usage of each socket address (protocol/network address/port) is normally permitted. (0x2740)
[8116:8468:0201/164204.442:ERROR:tcp_socket_win.cc(355)] bind() returned an error: Only one usage of each socket address (protocol/network address/port) is normally permitted. (0x2740)
[8116:8468:0201/164204.473:ERROR:devtools_http_handler.cc(295)] Cannot start http server for devtools.
[8116:3184:0201/164205.297:ERROR:gpu_process_transport_factory.cc(967)] Lost UI shared context.

在 OperaSoftware.OperaWebbrowser 控制台中,记录了以下内容

<head>
</head>
<body>
<table border='2' cellpadding='20' align='center'>
    <tbody>
    <tr>
        <td class="switch">1</td>
        <td class="switch">2</td>
        <td class="switch">3</td>
    </tr>
    </tbody>
</table>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<script type="text/javascript">
    $('\.switch').click(function() {
        $(this).toggleClass('highlight');
        $(this).click(function() {
            $(this).toggleClass('highlight2');
        })
        $(this).click(function() {
            $(this).toggleClass('switch');
        })
    })
</script>
<style>
    .highlight {
        background-color: #ffff00;
    }
    .highlight2 {
        background-color: red;
    }
</style>
</body>

我知道我真的很接近让它工作......我认为这里的障碍是 DevTools HTTP 请求在多次尝试时失败,最终导致 InitSession 失败,因为它无法到达/附加到歌剧。

我的问题……我在这里遗漏了什么?对于我们测试的其他浏览器,如 Chrome、IE11、FF 等,启动 webdriver 并附加到浏览器实例一点也不难。恐怕我错过的任何东西都是显而易见的,而我只是没有看到。当然,根据我在网上的研究,在使用 Opera 进行测试时,我没有看到任何明确和明确的内容。被绑定到特定版本使这个问题更像是一个障碍。非常感谢任何输入。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...