2013-03-18 29 views
0

我試圖跟隨與空格和「http://」-s在他們的Watir鏈接。這樣做我可以複製粘貼類似的東西:ruby​​/watir webdriver - 網址編碼空間等

http://somewebsite.com/car%20navigation%20systems/products~NS-1~linkin_id-8016137~cid-3220953854?ef_id=test:@a-b 

進入瀏覽器地址欄,並打開適當的頁面。當我將這個字符串分配給ruby代碼中的一個變量url_string並執行「puts url_string」時,我以這種方式看到了該字符串(其中包含%20-s)。 當我使用watir webdriver的「b.goto url_string」時,它會在瀏覽器中顯示「汽車導航系統」而不是「car%20navigation%20systems」,顯然它不起作用。

當我「需要open-uri」而不是使用「b.goto url_string」時,使用「b.goto URI :: encode(url_string)」我在瀏覽器中看到%20被替換爲%2520(「汽車%2520navigation%2520systems「) - 並再次無法正常工作。

我該如何處理像這樣的字符串(它可以手動複製粘貼到瀏覽器中正常工作),以便正確使用它們與b.goto?

http://somewebsite.com/car%20navigation%20systems/products~NS-1~linkin_id-8016137~cid-3220953854?ef_id=test:@a-b 

http://somewebsite.com/somepage.cmp?bm=513&BEFID=1398&aon=%5E1&MerchantID=26574&crawler_id=1903439&dealId=U4KvhohLLfNITUSw9xH1PA%3D%3D&url=http%3A%2F%2Flink.mercent.com%2Fredirect.ashx%3Fmr%3AmerchantID%3DREI%26mr%3AtrackingCode%3D4B0E6F02-7411-E111-804A-A8C6AF702B72%26mr%3AtargetUrl%3Dhttp%3A%2F%2Fwww.rei.com%2FOM%2Fsku%2F8108320014%253fcm_mmc%253dcse_shopping-_-datafeed-_-product-_-na%26sdc_id%3D%7Bsdc_id%7D&linkin_id=8011139&Issdt=&searchID=On29U8JKSm&DealName=Garmin+Edge+800+Wireless+Bike+Computer+Color+BLACK&dlprc=449.95&AR=23&NG=29&NDP=40&PN=1&ST=7&FPT=DNSR&NDS=&NMS=&MRS=&PD=104443840&brnId=2455&IsFtr=0&IsSmart=0&op=&CM=&RR=23&IsLps=0&code=&acode=602&category=&HasLink=&ND=&MN=&GR=&lnkId=&SKU=8108320014&IsGtb=0&SPT=CROSSGV&MNID=22406&EF=TEST300%3A3&sig=e917ca16cfc85bedd51b2445ee2aa566f1ccc319&CT=14 

更新:到目前爲止b.goto url_string.gsub( 「%20」, 「+」)工作了大部分的URL。

+0

你能嘗試包括剛纔每個%20 – Bala 2013-03-18 17:55:26

+0

@Bala之前 '\':它並不能幫助。如果我先用\%20替換每個%20,然後在b.goto中用它作爲參數,我仍會在瀏覽器的url欄中看到空格。 – earlyadopter 2013-03-18 17:59:48

+0

你可以創建一個公共站點的例子,所以我們可以自己嘗試嗎? – 2013-03-18 18:08:36

回答

1

事實證明,這是工作:

url_string = "http://somewebsite.com/car%20navigation%20systems/products~NS-1~linkin_id-8016137~cid-3220953854?ef_id=test:@a-b" 
b.goto url_string.gsub("%20", "+")