如题所述
æ¨å¥½ï¼å¾é«å
´è½å¸®å©æ¨
é£ä¹ä½¿ç¨å¨æå¯ç æéªè¯ç çç½ç«æ们就æ æ³èªå¨åæµè¯äºä¹ï¼çæ¡æ¯ä¸ä¸å®ï¼å 为æäºç½ç«ç»éåä¼å¨cookieä¸åå ¥å½åç¨æ·çç»å½æï¼äºæ¯åªè¦ç» éä¸æ¬¡è¯¥ç«ç¹ï¼é£ä¹ä¸æ¬¡è®¿é®çæ¶åå°±ä¸éè¦åç»éäºãå æ¤æ们éè¦è®©æµè§å¨ä¸ºæ们ä¿åcookie以使å¾æ们å¯ä»¥ä¸éè¦ç»éç«ç¹å°±è½è¿è¡èªå¨åæµè¯ã
ä½æ¯seleniumæwatir webdriveré»è®¤å¯å¨çæ¶åæ¯æ²¡æå 载已åå¨cookieçãå ¶å®è¿ä¸ªé®é¢ç解å³æ¹æ³é常ç®åã
Watir::Browser.new(:firefox, {:profile => 'default'}) # watir webdriver
Selenium::WebDriver.for(:firefox, :profile => 'default') #selenium 2
å¨å¯å¨æµè§å¨çæ¶åå ä¸default profileå°±è½è§£å³è¿ä¸ªé®é¢äºã
ä½ çé纳æ¯æåè¿çå¨åï¼
è®°å¾å¥½è¯åé纳ï¼çé¢ä¸æï¼äºç¸å¸®å©ï¼
é£ä¹ä½¿ç¨å¨æå¯ç æéªè¯ç çç½ç«æ们就æ æ³èªå¨åæµè¯äºä¹ï¼çæ¡æ¯ä¸ä¸å®ï¼å 为æäºç½ç«ç»éåä¼å¨cookieä¸åå ¥å½åç¨æ·çç»å½æï¼äºæ¯åªè¦ç» éä¸æ¬¡è¯¥ç«ç¹ï¼é£ä¹ä¸æ¬¡è®¿é®çæ¶åå°±ä¸éè¦åç»éäºãå æ¤æ们éè¦è®©æµè§å¨ä¸ºæ们ä¿åcookie以使å¾æ们å¯ä»¥ä¸éè¦ç»éç«ç¹å°±è½è¿è¡èªå¨åæµè¯ã
ä½æ¯seleniumæwatir webdriveré»è®¤å¯å¨çæ¶åæ¯æ²¡æå 载已åå¨cookieçãå ¶å®è¿ä¸ªé®é¢ç解å³æ¹æ³é常ç®åã
Watir::Browser.new(:firefox, {:profile => 'default'}) # watir webdriver
Selenium::WebDriver.for(:firefox, :profile => 'default') #selenium 2
å¨å¯å¨æµè§å¨çæ¶åå ä¸default profileå°±è½è§£å³è¿ä¸ªé®é¢äºã
ä½ çé纳æ¯æåè¿çå¨åï¼
è®°å¾å¥½è¯åé纳ï¼çé¢ä¸æï¼äºç¸å¸®å©ï¼
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-12-08
java无法做到与浏览器API交互,因为编译发行的浏览器可执行文件不是内核源码,木有丰富的内置API可供调用。
因此,在打开浏览器的时候会指定 URL 到Selenium的远程服务页上去。这个页面通过js建立与远程服务器的HTTP连接通信(如 长连接,websocket,ajax轮询等)。
当远程代码需要获取、操作本地浏览器DOM、JS 等内容时,推送一段指定js源码到浏览器端执行。执行完成后将结果发送至远端服务器上。
以此来实现远端对客户端浏览器页面内容通信。
因此,在打开浏览器的时候会指定 URL 到Selenium的远程服务页上去。这个页面通过js建立与远程服务器的HTTP连接通信(如 长连接,websocket,ajax轮询等)。
当远程代码需要获取、操作本地浏览器DOM、JS 等内容时,推送一段指定js源码到浏览器端执行。执行完成后将结果发送至远端服务器上。
以此来实现远端对客户端浏览器页面内容通信。