У меня есть тест на селен, написанный на python (3.5.2) с использованием Firefox (v59.0.2 64-бит) в Ubuntu Linux (16.04.4 LTS). Версия geckodriver - v0.20.1. Я автоматизирую твит в Твиттере, и в режиме графического интерфейса он всегда отлично работает. Однако в режиме без заголовка он каждый раз пропускает один и тот же щелчок по определенному элементу. Кто-нибудь видел это раньше? Также есть предложения по отладке в автономном режиме?
from selenium.webdriver.support import expected_conditions as ec
# Here is the way I am getting the element
@property
def sending_message_close_button(self):
self._sending_tweets_message_close = self._driver.wait.until(ec.element_to_be_clickable((By.CSS_SELECTOR,
"div.alert-messages.js-message-drawer-visible a.Icon.Icon--close.Icon--medium.dismiss")))
return self._sending_tweets_message_close
А вот призыв щелкнуть элемент в методе того же класса:
self.sending_message_close_button.click()
Я пробовал использовать ActionBuilder, чтобы перейти к элементу и щелкнуть по нему. Я также пробовал щелкнуть javascript. Ни то, ни другое не сработало.
Вот как я инициализирую браузер (URL-адрес отредактирован для конфиденциальности):
@property
def webdriver(self):
if self._webdriver is None:
options = Options()
options.add_argument('-headless')
profile = FirefoxProfile()
profile.set_preference("network.proxy.type", 2)
if self._env == 'demo':
profile.set_preference("network.proxy.autoconfig_url", "")
elif self._env == 'stage':
profile.set_preference("network.proxy.autoconfig_url", "")
profile.set_preference("network.proxy.no_proxies_on", "localhost")
if self._use_options:
self._webdriver = webdriver.Firefox(firefox_profile=profile, options=options)
else:
self._webdriver = webdriver.Firefox(firefox_profile=profile)
self._webdriver.implicitly_wait(10)
return self._webdriver
На прошлой неделе я добавил сюда инициализацию драйвера @cruisepandey
как вы инициализируете безголовый браузер?