2012-02-01 27 views
13

के साथ स्विचिंग मैं सोच रहा हूं कि क्या मैं फोरफ़ॉक्स ड्रायवर का नया उदाहरण बनाये बिना फ्लाई पर उपयोगकर्ता एजेंट प्रोफ़ाइल बदल सकता हूं? मेरे पास निम्न कोड है, जिसे मैं आईफोन या आईपैड इत्यादि के लिए उपयोगकर्ता एजेंट में पास कर सकता हूं .. यह ठीक काम करता है, लेकिन मुझे प्रत्येक टेस्ट के लिए एक नया उदाहरण बनाना है जो धीमा है क्योंकि यह ब्राउज़र को खोलता/बंद करता है। जैसे आईफोन उपयोगकर्ता एजेंट के साथ अपने परीक्षण करने के बाद, मैं प्रोफाइल को एंड्रॉइड उपयोगकर्ता एजेंट या आईपैड उपयोगकर्ता एजेंट पर स्विच करना चाहता हूं, क्या ड्राइवर को नया इंस्टेंस बनाने की आवश्यकता के बिना इसे बदलने का विकल्प मिलता है?WebDriver FireFoxProfile UserAgent FireFoxDriver

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference("general.useragent.override","some user agent, like iphone or iPad"); 
WebDriver driver = new FirefoxDriver(profile); 

// do some tests 
// set profile to new user agent 
// profile.setPreference("general.useragent.override","some android user agent"); 

// can i now set the driver to the new profile here and perform more tests on this same instance of the driver? 
+1

अब तक अब आप ऐसा नहीं कर सकते हैं। – p0deje

+0

क्या कोई समाधान है? – andyf

उत्तर

2

RemoteWebdriver (FirefoxDriver की मूल वर्ग) क्षमताओं के नक्शे केवल जब सत्र (निर्माता में) शुरू कर रहा है अद्यतन करता है। दुर्भाग्य से हम इसे कहीं और संशोधित नहीं कर सकते हैं। मुझे लगता है कि यह एक बहुत अच्छा विचार है।

1

शायद एक्सटेंशन के माध्यम से केवल एक ही रास्ता है। हालांकि, मैं कभी नहीं इस कोशिश की ...

FirefoxProfile ffProfile = new FirefoxProfile(); 
ffProfile.addExtension(new File("path/to/extension")); 
WebDriver driver = new FirefoxDriver(ffProfile); 

विस्तार इसके साथ काम कर सकते हैं उपयोगकर्ता एजेंट स्विचर है: https://addons.mozilla.org/cs/firefox/addon/user-agent-switcher/?src=ss

लेकिन जैसा कि पहले कहा, मैं कभी था कि और कैसे नियंत्रित करने के लिए कोई सुराग नहीं है सेलेनियम

+0

मैं इसे देख लूंगा, विचार के लिए धन्यवाद। – Green

0

हमारी कंपनी में हम जावा में लिखे गए ओपन सोर्स प्रॉक्सी ब्राउमोब प्रॉक्सी का उपयोग करते हैं। यह सेलेनियम के साथ पूरी तरह से एकीकृत करता है, और आप इसे अपने कोड से नियंत्रित कर सकते हैं। यह हमें कई उद्देश्यों के लिए सेवा करता है, उनमें से एक हेडर हेरफेर है।

कर इसे यहाँ वर्णन किया गया है के रास्ते: https://github.com/webmetrics/browsermob-proxy (HTTP अनुरोध हेरफेर अनुभाग)

0

मेरे लिए यह काम:

server.addHeader("User-Agent", uaString) 
संबंधित मुद्दे