2011-01-06 13 views
13

मैं HTMLUnit का उपयोग करने के लिए सेलेनियम कैसे कहूं?मैं पाइथन से सेलेनियम के साथ HTMLUnit ड्राइवर का उपयोग कैसे करूं?

मैं पृष्ठभूमि में सेलेनियम सर्वर के रूप में सेलेनियम-सर्वर-स्टैंडअलोन-2.0b1.jar चला रहा हूं, और नवीनतम पाइथन बाइंडिंग "पीआईपी इंस्टॉल-यू सेलेनियम" के साथ स्थापित है।

सब कुछ फ़ायरफ़ॉक्स के साथ ठीक काम करता है। लेकिन मैं, HTMLUnit उपयोग करना चाहते हैं के रूप में यह वजन में हल्का है और यह मेरा प्रयास ऐसा करने के लिए किया जाता है एक्स की जरूरत नहीं है:

>>> import selenium 
>>> s = selenium.selenium("localhost", 4444, "*htmlunit", "http://localhost/") 
>>> s.start() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.6/dist-packages/selenium/selenium/selenium.py", line 189, in start 
    result = self.get_string("getNewBrowserSession", start_args) 
    File "/usr/local/lib/python2.6/dist-packages/selenium/selenium/selenium.py", line 223, in get_string 
    result = self.do_command(verb, args) 
    File "/usr/local/lib/python2.6/dist-packages/selenium/selenium/selenium.py", line 217, in do_command 
    raise Exception, data 
Exception: Failed to start new browser session: Browser not supported: *htmlunit 

Supported browsers include: 
    *firefox 
    *mock 
    *firefoxproxy 
    *pifirefox 
    *chrome 
    *iexploreproxy 
    *iexplore 
    *firefox3 
    *safariproxy 
    *googlechrome 
    *konqueror 
    *firefox2 
    *safari 
    *piiexplore 
    *firefoxchrome 
    *opera 
    *iehta 
    *custom 

तो सवाल, क्या HTMLUnit ड्राइवर कहा जाता है? मैं इसे कैसे सक्षम करूं?

HTMLUnit का कोड सेलेनियम 2 के स्रोत में प्रतीत होता है, इसलिए मुझे उम्मीद है कि यह डिफ़ॉल्ट रूप से अन्य ब्राउज़रों की तरह उपलब्ध हो। मुझे इसे सक्षम करने के तरीके पर कोई निर्देश नहीं मिल रहा है।

+0

मैं सेलेनियम-rc के साथ इस टैग किया है और साथ ही ब्राउज़र को निर्दिष्ट करके HtmlUnitDriver उपयोग करने के लिए, के रूप में कर रहा हूँ मुझे कोई फर्क नहीं पड़ता कि मैं सेलेनियम 2 या सेलेनियम-आरसी का उपयोग करता हूं। – frabcus

+0

संभावित डुप्लिकेट [मैं पाइथन बाइंडिंग के माध्यम से सेलेनियम के साथ HtmlUnit ड्राइवर का उपयोग कैसे करूं?] (Http://stackoverflow.com/questions/4081724/how-do-i-use-the-htmlunit-driver-with-selenium -थ्रू-द-पायथन-बाइंडिंग्स) – CraigTeegarden

उत्तर

5

सेलेनियम 2.20.0.jar सर्वर का उपयोग और अजगर संस्करण मिलान, मैं * नकली

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 

server_url = "http://%s:%s/wd/hub" % (test_host, test_port) 
dc = DesiredCapabilities.HTMLUNIT 
wd = webdriver.Remote(server_url, dc) 
wd.get('http://www.google.com') 
2

मैं इस तरह इसका इस्तेमाल: आप भी कर सकते हैं

from selenium import webdriver 
driver = webdriver.Remote(
    desired_capabilities=webdriver.DesiredCapabilities.HTMLUNIT) 
driver.get('http://www.google.com') 

:

from selenium.remote import connect                               

b = connect('htmlunit')                                  
b.get('http://google.com')                                 

q = b.find_element_by_name('q')                                
q.send_keys('selenium')                                  
q.submit()                                     

for l in b.find_elements_by_xpath('//h3/a'):                             
    print('%s\n\t%s\n' % (l.get_text(), l.get_attribute('href'))) 
+0

HtmlUnit द्वारा सेलेनियम 1 इंटरफ़ेस प्रदान करने का कोई तरीका कहां है? – uhbif19

15

अजगर ग्राहक की 2.0b3 रिलीज के रूप में आप तो जैसे एक दूरस्थ कनेक्शन के माध्यम से एक HTMLUnit webdriver बना सकते हैं जावास्क्रिप्ट समर्थन वाले ब्राउज़र के लिए HTMLUNITWITHJS क्षमता आइटम का उपयोग करें।

ध्यान दें कि इस काम के लिए आपको सेलेनियम जावा सर्वर चलाने की आवश्यकता है, क्योंकि HTMLUnit जावा पक्ष पर लागू किया गया है।

संबंधित मुद्दे