2013-03-18 47 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", "+")