У меня есть сценарий, который должен взаимодействовать с веб-страницей через селен. Мне нужно использовать какой-то виртуальный дисплей, чтобы браузер не показывался.ElementNotVisibleException только в виртуальном дисплее
Сценарий в целом отлично работает, пока я не представим Xvfb в микс. Когда я это делаю, я получаю ElementNotVisibleException
в первый раз, когда я фактически пытаюсь взаимодействовать со страницей.
Я пробовал использовать xvfbwrapper
и pyvirtualdisplay
с тем же эффектом.
А вот код, который не работает:
from xvfbwrapper import Xvfb
vdisplay = Xvfb()
vdisplay.start()
oBrowser = Browser()
oBrowser.visit(sUrl)
oBrowser.find_by_id('some_field')[0].fill(sValue) #<--ERROR
vdisplay.stop()
А вот код, который делает работу (но отображает браузер):
oBrowser = Browser()
oBrowser.visit(sUrl)
oBrowser.find_by_id('some_field')[0].fill(sValue) #<--works every time
Так как я могу запустить свой код на виртуальном дисплее?
Я попытался сделать time.sleep
, прежде чем пытаться заполнить поле, но проблема, похоже, не имеет ничего общего с медленной загрузкой страницы. Есть идеи?
er ... ваши теги неправильные: похоже, вы используете splinter (https://splinter.readthedocs.org/en/latest/), а не привязки selenium python (http: //selenium-python.readthedocs. орг/посаживания started.html). –
@KirilS. Отметил. Сплинтер делает это волшебство через селен, поэтому корень вещей - проблема селена – Sheena