<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en-US">WebDriver Status - Mozilla | MDN</cite>
( (<time>2016-08-04 17:24:28 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver/status">https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver/status</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en-US">WebDriver - Mozilla | MDN</cite>
( (<time>2016-08-06 22:41:33 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver">https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="en-US">Marionette - Mozilla | MDN</cite>
( (<time>2016-07-23 00:42:55 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette">https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette</anchor-external></figcaption><blockquote><p>Marionette is an automation driver for Mozilla's Gecko engine. It can remotely control either the UI or the internal JavaScript of a Gecko platform, such as Firefox. It can control both the chrome (i.e. menus and functions) or the content (the webpage loaded inside the browsing context), giving a high level of control and ability to replicate user actions. In addition to performing actions on the browser, Marionette can also read the properties and attributes of the DOM.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en-US">Marionette Protocol - Mozilla | MDN</cite>
( (<time>2016-01-20 19:45:07 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/Protocol">https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/Protocol</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> selenium-server-standalone は、バージョン2の時
<code>-Dwebdriver.firefox.bin=...</code> オプションで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実行ファイル</anchor>を指定できましたが、
バージョン3ではこのオプション自体が無くなっているようで、エラーになります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en">mozilla/geckodriver: WebDriver &lt;-&gt; Marionette proxy</cite>
( (<time>2016-08-12 15:18:44 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/mozilla/geckodriver">https://github.com/mozilla/geckodriver</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en">Releases · mozilla/geckodriver</cite>
( (<time>2016-08-12 15:19:46 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/mozilla/geckodriver/releases">https://github.com/mozilla/geckodriver/releases</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GeckoDriver</anchor> に対して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> が古すぎると、
<code>{&quot;error&quot;:&quot;unknown error&quot;,&quot;message&quot;:&quot;Unsupported Marionette protocol version 2, required 3&quot;}</code>
というエラーが返されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Selenium</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FirefoxDriver</anchor> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">capabilities</anchor> に
<code>&quot;firefox_binary&quot;: &quot;/path/to/firefox&quot;</code> を指定すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実行ファイル</anchor>の位置を明示できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
非互換変更しまくるのやめてほしい・・・
<time>2018-02-01T10:15:57.700Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ChromeDriver</anchor> と比べてもなーんか不安定なんだよなあ
<time>2019-11-05T00:59:14.000Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en-US">mozilla-central: changeset 604680:577a5b37f781ba999825069a5f552468f9e55cc4</cite>, <time>2023-04-19T01:43:14.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://hg.mozilla.org/mozilla-central/rev/577a5b37f781ba999825069a5f552468f9e55cc4">https://hg.mozilla.org/mozilla-central/rev/577a5b37f781ba999825069a5f552468f9e55cc4</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal> この変更から <code>Host:</code> と <code>Origin:</code> の値の検査が厳密になりました。
公開サーバーの不正利用の防止の意図なのでしょうけど、
従来の動作に戻す方法を提供しないで非互換変更してくるのが厳しい。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">listen</anchor> している <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">port</anchor> と違う値が <code>Host:</code> に設定されているとエラーになります。
回避オプションはなし。
<code>--allow-hosts</code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト名</anchor>だけしか書けず、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ポート番号</anchor>を書いてもエラーになるだけです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ポート転送</anchor>して他のポートで使っていた実装はこの変更で壊れました。</p></body></html>