Можно выполнить Селен на бездисплейной установке на сервере, например, путем программирования действий в Python с помощью pyvirtualdisplay.
pyvirtualdisplay
позволяет Вам использовать a xvfb
, xepher
или xvnc
экранируйте, таким образом, можно сделать снимок экрана (или взять удаленный быстрый взгляд для наблюдения то, что продолжается).
На установке Ubuntu 12.04:
sudo apt-get install python-pip tightvncserver xtightvncviewer
sudo pip install selenium pyvirtualdisplay
и выполненный следующее (это использует более новый Selenium2 API, более старый API, все еще доступно также):
import subprocess
from pyvirtualdisplay import Display
from selenium import webdriver
def browse_it(port=None):
browser = webdriver.Firefox()
page = browser.get('http://unix.stackexchange.com/questions')
for question in browser.find_elements_by_class_name('question-hyperlink'):
print question.text
if port:
print '--------\nconnect using:\n vncviewer ' + \
'localhost:{}\nand click the xmessage to quit'.format(port)
subprocess.call(['xmessage', 'click to quit'])
browser.quit()
def browse_it_hidden(rfbport=5904):
with Display(backend='xvnc', rfbport=str(rfbport)) as disp:
browse_it(rfbport)
if __name__ == '__main__':
browse_it_hidden()
xmessage
предотвращает браузер для выхода, в тестовых средах Вы не хотели бы это. Можно также звонить browse_it()
непосредственно протестировать на переднем плане.
Результаты Селена find_element.....()
не обеспечивайте вещи как выбор родительского элемента элемента, который Вы просто нашли. Что-то, что Вы могли бы ожидать от пакетов парсинга HTML (я считал где-нибудь это, нарочно). Эти ограничения могут быть видом стычки, если Вы делаете очистку страниц, Вы не имеете никакого контроля. При тестировании собственного сайта просто удостоверьтесь, что Вы генерируете все элементы, которые Вы хотите протестировать с id
или уникальный class
таким образом, они могут быть выбраны без стычки.
Проверьте внутри ВМ, можете ли вы подключиться к интернету.Если в вашей хостовой операционной системе есть подключение к интернету, то определенно можно получить NAT IP и ваша вкусняшка будет работать
Тогда выпустите
Это перечислит все ваши адаптеры на VM OS.
Предположим, что в качестве основного адаптера у вас есть eth0, затем просто напишите следующую команду:
После того, как интерфейс поднимется, вы сможете увидеть его в выводе [1176554]ifconfig[1176555], и вы сможете пинговать во внешнем мире.[1176123].
У меня была похожая проблема (нет ням и я даже не мог пинговать зеркальный список), и мне пришлось пройти следующие шаги, чтобы хотя бы добраться до пинг зеркального списка:
Измените файл /etc/sysconfig/network-scripts/ifcfg-eth0
(например, используя vi
):
BOOTPROTO=dhcp
ТОЛЬКО ДА
NM_CONTROLLED=нет
Перезапустите сеть: перезагрузите сеть
Причина для шага 4:
После выполнения шагов с 1 по 3 я могу пинговать серверы. Однако, у меня все еще были проблемы с использованием
yum
(Я могу пинговать mirrorlist.centos.org, но yum
все равно дает эту ошибку). Это произошло из-за того, что моя локальная машина находилась в сети, которая использовала прокси с аутентификацией, используя вход в систему windows. Я исправил это, выйдя из локальной сети на гостевой wifi, который случайно не проходил через этот прокси.