【问题标题】:Firefox windows in not opening in selenium pythonFirefox 窗口无法在 selenium python 中打开
【发布时间】:2017-01-31 08:24:00
【问题描述】:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://google.com")
driver.implicitly_wait(80)
print driver.page_source.encode('utf-8')

锁在哪里,为什么不打开?

【问题讨论】:

  • 在哪里实例化了驱动变量?

标签: python google-chrome selenium firefox


【解决方案1】:

你应该在driver.get之前使用implicit_wait

from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")

隐式等待是告诉 WebDriver 在尝试查找一个或多个元素(如果它们不是立即可用的)时轮询 DOM 一段时间。默认设置为 0。一旦设置,就会为 WebDriver 对象实例的生命周期设置隐式等待。

关于您在 cmets 中的问题:

import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options


executable_path = "path_to_webdriver"
os.environ["webdriver.chrome.driver"] = executable_path

chrome_options = Options()
chrome_options.add_extension('path_to_extension')

driver = webdriver.Chrome(executable_path=executable_path, chrome_options=chrome_options)
driver.get("http://*.com")
driver.quit()

【讨论】:

  • 没有在 chrome 中没有扩展正在加载,所以我需要坚持使用 firefox
  • @Rakeshmoorthy 我很困惑,因为您的标签之一是 google-chrome,编辑了我的答案
  • 得到错误 os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException:消息:“geckodriver”可执行文件需要在 PATH 中。 Exception AttributeError: "'Service' object has no attribute 'process'" in > 的
  • @Rakeshmoorthy 您可以在此link 中了解您的错误
  • omri_saadon 你知道在使用 selenium 时如何使用 chrome 加载扩展(我在 ubuntu 上)?