2010-11-02 4 views
10

Я использую WebDriver через привязки Python located on Google's site. Согласно документации here, она поддерживает четыре браузера: Chrome, IE, Firefox и HtmlUnit. Я могу импортировать драйвер Firefox, используя from selenium.firefox.webdriver import WebDriver, и драйвер Chrome с помощью from selenium.chrome.webdriver import WebDriver.Как использовать драйвер HtmlUnit с Selenium через привязки Python?

Существует не сопоставимый модуль HtmlUnit. Как импортировать драйвер HtmlUnit?

ответ

5

HtmlUnit - это библиотека Java, поэтому единственным выбором для привязок WebDriver, не относящихся к Java, является использование RemoteWebDriver. Вам нужно будет запустить Selenium Server и подключиться к нему, указав HtmlUnit в качестве обозревателя.

Я не очень хорошо знаком с Python, но по http://code.google.com/p/selenium/wiki/PythonBindings это должно выглядеть примерно так:

from selenium.remote import connect 
from selenium import HTMLUNIT 


wd = connect(HTMLUNIT, server="http://<selenium_server>:4444") 
+1

Кроме того, что вы можете использовать драйверы IE, Chrome и Firefox через Python привязок. И http://code.google.com/p/selenium/wiki/PythonBindings говорит: «Все браузеры, поддерживаемые реализацией Java Selenium, доступны в привязках Python». –

+3

Но HtmlUnit не является браузером - это Java-платформа для модульного тестирования html/web-приложений. –

+0

HTMLUnit - это браузер. Просто потому, что вы не можете видеть, что рендер не делает его менее привлекательным для браузера - это просто означает, что он безголовый. –

3

Я использую это так:

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

больше не работает: ImportError: Нет модуля с именем remote –

10

Я нашел ответ на https://stackoverflow.com/a/5518175/125170

As of the 2.0b3 release of the python client you can create an HTMLUnit webdriver via a remote connection like so:

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

You can also use the HTMLUNITWITHJS capability item for a browser with Javascript support.

Note that you need to run the Selenium Java server for this to work, since HTMLUnit is implemented on the Java side.

-6

// Вы можете использовать HtmlUnitDriver в этом случае.

 import org.openqa.selenium.htmlunit.HtmlUnitDriver; 

// Объявление и инициализацией HtmlUnitWebDriver

HtmlUnitDriver unitDriver = new HtmlUnitDriver(); 

// открыть google.com веб-страница

unitDriver.get("http://google.com"); 
+1

Downvote, это для java. ОП попросил питона. – Jeflopo