Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让硒和铬在ubuntu上工作_Python_Selenium_Selenium Webdriver_Chromium_Selenium Chromedriver - Fatal编程技术网

Python 如何让硒和铬在ubuntu上工作

Python 如何让硒和铬在ubuntu上工作,python,selenium,selenium-webdriver,chromium,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Chromium,Selenium Chromedriver,我正在尝试使用selenium和Chrome来浏览一个使用javascript的网站 我安装了: 铬: sudo apt-get install chromium-browser 通过下载chrome驱动程序并从 硒 pip install selenium 但是,我无法做到这一点: from selenium import webdriver service_args = ['--verbose'] service_log_path = "{}/chromedriver.log"

我正在尝试使用selenium和Chrome来浏览一个使用javascript的网站

我安装了:

  • 铬:

    sudo apt-get install chromium-browser
    
  • 通过下载chrome驱动程序并从

  • pip install selenium
    
但是,我无法做到这一点:

from selenium import webdriver

service_args = ['--verbose']
service_log_path = "{}/chromedriver.log".format('/projects/')

driver = webdriver.Chrome('/path/to/chromedriver', service_args=service_args, service_log_path=service_log_path)
我得到这个错误:

WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.13.307649 (bf55b442bb6b5c923249dd7870d6a107678bfbb6),platform=Linux 3.13.0-30-generic x86_64)
这是我的日志文件: 开发工具的问题是什么

[0.973][INFO]: COMMAND InitSession {
   "desiredCapabilities": {
      "browserName": "chrome",
      "chromeOptions": {
         "args": [  ],
         "extensions": [  ]
      },
      "javascriptEnabled": true,
      "platform": "ANY",
      "version": ""
   }
}
[0.980][INFO]: Populating Preferences file: {
   "alternate_error_pages": {
      "enabled": false
   },
   "autofill": {
      "enabled": false
   },
   "browser": {
      "check_default_browser": false
   },
   "distribution": {
      "import_bookmarks": false,
      "import_history": false,
      "import_search_engine": false,
      "make_chrome_default_for_user": false,
      "show_welcome_page": false,
      "skip_first_run_ui": true
   },
   "dns_prefetching": {
      "enabled": false
   },
   "profile": {
      "content_settings": {
         "pattern_pairs": {
            "https://*,*": {
               "media-stream": {
                  "audio": "Default",
                  "video": "Default"
               }
            }
         }
      },
      "default_content_settings": {
         "geolocation": 1,
         "mouselock": 1,
         "notifications": 1,
         "popups": 1,
         "ppapi-broker": 1
      },
      "password_manager_enabled": false
   },
   "safebrowsing": {
      "enabled": false
   },
   "search": {
      "suggest_enabled": false
   },
   "translate": {
      "enabled": false
   }
}
[0.982][INFO]: Populating Local State file: {
   "background_mode": {
      "enabled": false
   },
   "ssl": {
      "rev_checking": {
         "enabled": false
      }
   }
}
[0.988][INFO]: Launching chrome: /usr/bin/chromium-browser --disable-background-networking --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-hang-monitor --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-logging --ignore-certificate-errors --load-extension=/tmp/.com.google.Chrome.Wgxcag/internal --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=12948 --safebrowsing-disable-auto-update --safebrowsing-disable-download-protection --test-type=webdriver --use-mock-keychain --user-data-dir=/tmp/.com.google.Chrome.Fqyvg3 data:,
[0.991][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[0.999][WARNING]: PAC support disabled because there is no system implementation
[1.113][DEBUG]: DevTools request failed
[1.165][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.166][DEBUG]: DevTools request failed
[1.217][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.217][DEBUG]: DevTools request failed
[1.268][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.269][DEBUG]: DevTools request failed
[1.319][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.320][DEBUG]: DevTools request failed
[1.370][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.371][DEBUG]: DevTools request failed
[1.422][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.423][DEBUG]: DevTools request failed
[1.474][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.475][DEBUG]: DevTools request failed
[1.526][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.527][DEBUG]: DevTools request failed
[1.577][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.578][DEBUG]: DevTools request failed
[1:1:0123/165812:ERROR:image_metadata_extractor.cc(111)] Couldn't load libexif.
[1.629][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.630][DEBUG]: DevTools request failed
[6845:6845:0123/165812:ERROR:browser_main_loop.cc(209)] Gtk: cannot open display: 
[1.680][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.681][DEBUG]: DevTools request failed
[1.731][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.735][DEBUG]: DevTools request failed
[1.786][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.787][DEBUG]: DevTools request failed
[1.837][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.838][DEBUG]: DevTools request failed
[1.889][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.891][DEBUG]: DevTools request failed
[1.942][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.944][DEBUG]: DevTools request failed
[1.995][DEBUG]: DevTools request: http://127.0.0.1:12948/json/version
[1.997][DEBUG]: DevTools request failed
您可以在的帮助下使用在虚拟显示器上运行chrome automation,因为您没有真正的chrome automation:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Chrome()
browser.get('http://www.google.com')
print browser.title
browser.quit()

display.stop()
另见:


除此之外,切换到
PhantomJS
也是一个选项:

from selenium import webdriver

browser = webdriver.PhantomJS()
browser.get('http://www.google.com')
print browser.title
browser.quit()

可能有用我的第一个健康检查是总是尝试启动chromium,并确保在试用selenium之前它不会给我带来首次使用的麻烦。那里一切都好吗?@kiminoa如何自己检查铬?我试图直接运行chromium浏览器,但出现两个错误:无法加载libexif和Gtk:无法打开display@PadraicCunningham我试着关注这篇博文,但它没有改变任何事情。我不知道这是否重要,但我在Ubuntu服务器上,所以没有显示。这可能与此有关?谢谢你的回复。您知道使用一种解决方案与使用另一种解决方案在性能/简单性/开销方面是否有很大差异吗?@YAmikep我想这将取决于您的具体案例度量:)谢谢。对不起,我尝试了PhantomJS选项,虽然我仍然需要弄清楚如何在大量使用ajax请求的网站上很好地使用它,但它似乎仍然有效。感谢您的帮助。chromedriver似乎在selenium客户端请求时启动了浏览器,但由于DISPLAY环境变量未指向X服务器,浏览器死机。如果在X会话的终端窗口中启动chromedriver,我会在启动chromedriver之前运行“echo$DISPLAY”,以确保它包含诸如“:0”之类的字符串。此外,我还认为chromedriver会使用以下逻辑猜测浏览器的位置:如果目录项“chrome”存在于包含chromedriver的同一目录中,执行该条目。当我将chromedriver放在/opt/google中并将浏览器放在/opt/google/chrome/中时,这个逻辑甚至无法启动浏览器。为了解决这个问题,我将chromedriver移动到/opt/google/chrome/。