楽天オークションショップ-終了商品の再出品(1)

きたももんがさんのお陰様で楽天のログインは成功したのですが、「再出品」作業でまた立ち往生です。

楽天オークションショップIDがないと再現できないのですが、要するに出品期間が終了した商品を再出品するスクリプトで、watir-webdriverでは上手く往くのにmechanizeではエラーになるというものです。

以下がmechanize、watir-webdriverのサンプルコードです。どちらも、エラーはでません。最後の3.のサブミットの結果が、watir-webdriverでは再出品完了のページが返ってくるのにたいし、mechanizeでは

『システムエラー:大変申し訳ありません。画像登録エラーが発生しました。商品の出品は完了しておりますので、お手数ですが以下のURLから画像登録を行ってください。』

というエラーメッセージ・ページがレスポンスとして返ってきます。再出品は出来ているのに画像が登録されていない状態になります。

require 'mechanize'

	a= Mechanize.new{|a| a.user_agent_alias='Windows IE 7'}
	#楽天ログイン作業
	a.get("https://auction.item.rms.rakuten.co.jp/rms/c2c/item/DI01P001_003?shopId=XXX&itemId=YYY&copy=false")	
	a.page.form_with(:name => 'DI01Form'){|f|
		f.click_button(f.button_with(:name => 'subConfirm'))
	}		     ...1
	a.page.forms[0].submit ...2
	a.page.forms[0].submit ...3

------------------------------------------------------------------------------------------------------------

require 'watir-webdriver'

	ff = Watir::Browser.new :firefox, :profile => "default" 
	#楽天ログイン作業
	ff.goto "https://auction.item.rms.rakuten.co.jp/rms/c2c/item/DI01P001_003?shopId=XXX&itemId=YYY&copy=false"
	ff.button(:name => "subConfirm").click	...1
	ff.button(:name => "subRegister").click	...2
	ff.button(:value, /画像を確認/).click	...3

上記のコードでステップ1.、2.はまったく同じ結果が返ってくるのに、最後の3.だけ上手く往きません。

問題の楽天再出品・画像確認ページで今までと違うところが

名無しの権兵衛formと言う所まではいつもと同じだけれど、enctype="multipart/form-data"がついているので、確認用のサムネイル等をポストバックすることを期待されている…mechanizeで上手く往かない…

というトークンが設定されていてるのだけれど、それをJavaScriptで制御されているためmechanizeのうまく扱えない…

因みにFireFoxのヘッダーとMechanizeのヘッダーログの中クッキーを見ると

Cookie: s_pers=%20act_smp03%3D9968%7C1476077000482%3B%20s_xsent%3D1111%7C1478935118225%3B%20s_mrcr%3D2200400000000000%257C4000000000000%257C4000000000000%257C4000000000000%7C1479023215585%3B%20s_gen1%3D%253A30%7C1384566591935%3B%20s_nr%3D1321494591939-Repeat%7C1329270591939%3B; Rz=A-QIE3E7nMTf1GFcfckjDfm37gRfOpTR3X_Z5WyI4VTd8F-IXGr2lEMPevoc_2huyZcWloS_dBWrC6u1o5hA7N_vKdFOeqKWq-U3odWySayc6noFtwg0n3P6F5pG_dRa8IuVMvids1IY; Rq=M01.4&4ec467dd; Rp=d2f1b52c757a3d506b2173274e956ceadfd57; Apache=14.153.61.15.149591321255201750; Rt=fcd504c3f445a666e2e5b63cba601d33; Rg=17421e%263399d34fe4959ea320b139d5b56d39084f816ab644251c5a21cae8313ad7db5579b37ada555bf610f2984b0a99271fcda683b1ad9340dc2f9d01f89603da87d3de57acbb03dcd8c55690d20d5c840f70de57acbb03dcd8c55690d20d5c840f7071c999e861c5da0d3f398e9ee640628738dd58d793ce17e13806a1c9427d803d3a967ae947d74cfa0b98fc8859746bd0%262011-11-15+16%3A36%3A51; Rb=1s1978ca25&a15&a24; Ra=A1io-DR2Cwsi-_ViC99tBHeC_8LmWvx5knaYDIKDBRY-7i8NwDaUSM2kkU1JS1bTYxZlkOf1ULwwmEaw8OSSeVeRmoG0XdX482Fp7FBQQAB8PQisnwgMp-Q2yFlrgvjxU_4fX9-qWNfLPQ~~; s_sess=%20s_landed%3D2%3B%20s_cc%3Dtrue%3B%20s_prevsite%3Dauction%3B%20s_sq%3Drakutenauctioncojpmain%253D%252526pid%25253DSyuppin%2525253A%25252520Step3%252526pidt%25253D1%252526oid%25253D%252525E7%25252594%252525BB%252525E5%25252583%2525258F%252525E3%25252582%25252592%252525E7%252525A2%252525BA%252525E8%252525AA%2525258D%252525E3%25252581%25252599%252525E3%25252582%2525258B%252526oidt%25253D3%252526ot%25253DSUBMIT%3B; fukusoba=ccf40a07ef8e860e72023ab028646b5a


D, [2011-11-17T08:18:23.309467 #6493] DEBUG -- : request-header: cookie => Rb=1sf2feetop&a15&a24&a25; Rz=A9GzdPUWospfu_cnizK_Pfa37gRfOpTR3X_Z5WyI4VTd8F-IXGr2lEMPevoc_2huyZcWloS_dBWrC6u1o5hA7N_vKdFOeqKWq-U3odWySayc6noFtwg0n3PvKWjiITDBAccFlBtO38P7; Rq=4ec452c9; Ra=A7cIIQWhykxXpjRWJizHMpN9m0QE3JBWTJMJz3St8NRqHQXhOsy-idRS_4R-Dr1XFZuMxZ8GDYlR-FeqxIIDTUQWRyOKtFFDNKzb9_uXj6oKoe1vILX7a3w7; Apache=14.153.61.184.229041321489093971; fukusoba=e146af94aff4700e95c7a9b56bad2a96

となっていてMechanizeのクッキーの方がRgなど足りないエントリーがある。これが原因かどうかは解らないが、今一不思議である。