Selenium webdriver在无头firefox中缺少点击

时间:2018-05-02 03:00:36

标签: python-3.x selenium ubuntu firefox headless

我在Ubuntu Linux(16.04.4 LTS)上使用Firefox(v59.0.2 64位)在python(3.5.2)中编写了一个selenium测试。 geckodriver版本是v0.20.1。我在Twitter上发布推文自动化,在GUI模式下,它每次都能完美运行。但是在无头模式下,每次都会错过对特定元素的相同点击。谁看过这个吗?还有无头模式调试的建议吗?

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。两者都没有。

以下是我初始化浏览器的方式(网址为隐私而编辑):

@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

0 个答案:

没有答案