0

私はいくつかのプロセスを自動化するためにpython ana seleniumを使用していますが、私が試したデフォルトのクロムプロファイルにセレンを添付できませんでした。

capability = webdriver.DesiredCapabilities.CHROME
self.driver = webdriver.Remote('http://127.0.0.1:9515/wd/hib',capability)

もちろん、私は最初にchromedriverを開始し、試してみました。

import time
from selenium import webdriver
import selenium.webdriver.chrome.service as service
service = service.Service('./chromedriver')
service.start()
capabilities = {'chrome.binary': '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('http://www.google.com/xhtml');
time.sleep(5) # Let the user actually see something!
driver.quit()

これにより、selenium.common.exceptions.WebDriverException: Message: u'Could not find Chrome binary at:

また、

self.driver = webdriver.Chrome("./chromedriver")

これは機能しますが、デフォルトのプロファイルではありません。また、これで新しいウィンドウまたは新しいタブを開く方法を知りたいですか?

ありがとう。

4

2 に答える 2

2

ウェブサイトから直接何かをコピーして貼り付けるだけではいけません!そのフォルダを自分で調べてみてください。何か入っていますか?!私の推測は違います。そのため、このビットをオフのままにすると、Chromeが存在するはずの場所を探しているため、正常に機能します。

とにかく、あなたがそれを間違って使用しているという点までもっと!

SeleniumにChromeで使用する別のプロファイルを与える場合は、次のoptionsクラスを使用する必要があります。

https://code.google.com/p/selenium/source/browse/py/selenium/webdriver/chrome/options.py

関数が必要ですadd_argument

なんで?

これは、Chromeに使用する別のプロファイルを与えるために、特定のコマンドライン(具体的には--user-data-dir)を使用してChromeを起動する必要があるためです。

http://www.chromium.org/user-experience/user-data-directory

このadd_argument関数は、コマンドラインスイッチを追加する機能を公開します。

したがって、このadd_argument関数を使用すると、Seleniumは、コマンドラインスイッチの一部としてChromeに、指定されたものをすべて渡すだけです。

于 2013-03-07T17:24:16.473 に答える