webentwicklung-frage-antwort-db.com.de

Legen Sie den Chrome-Browser-Binärcode in Python durch Chromedriver fest

Ich habe Selenium mit dem Python Chrome Webdriver verwendet ... In meinem Code habe ich Folgendes verwendet:

driver = webdriver.Chrome(executable_path = PATH_TO_WEBDRIVER)

um den Web-Treiber auf die ausführbare Web-Treiber-Datei zu verweisen. Gibt es eine Möglichkeit, den Web-Treiber auf die Chrome-Browser-Binärdateien zu verweisen?

In https://sites.google.com/a/chromium.org/chromedriver/capabilities haben sie Folgendes (was ich vermute, was ich suche):

ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");

Hat jemand ein Beispiel für Python?

6
user123

Sie können Chrome Browser Binary auf folgende Weise in Chrome für den Chrome-Treiber festlegen:


Options-Klasse verwenden:

from Selenium import webdriver
from Selenium.webdriver.chrome.options import Options
options = Options()
options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
driver.get('http://google.com/')

DesiredCapabilities-Klasse verwenden:

from Selenium import webdriver
from Selenium.webdriver.common.desired_capabilities import DesiredCapabilities
cap = DesiredCapabilities.CHROME
cap = {'binary_location': "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"}
driver = webdriver.Chrome(desired_capabilities=cap, executable_path="C:\\Utility\\BrowserDrivers\\chromedriver.exe")
driver.get('http://google.com/')

Verwendung von Chrome als Service:

from Selenium import webdriver
import Selenium.webdriver.chrome.service as service
service = service.Service('C:\\Utility\\BrowserDrivers\\chromedriver.exe')
service.start()
capabilities = {'chrome.binary': "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('http://www.google.com')
9
DebanjanB

Gibt es eine Möglichkeit, Webdriver auf die Chrome Browser-Binärdateien zu verweisen?

Wie andere bereits angegeben haben, verwenden Sie binary_location. Der Speicherort von Chrome variiert jedoch je nach Plattform. Fedora und Ubuntu verwenden unterschiedliche Speicherorte. Daher möchten Sie möglicherweise Folgendes verwenden:

def get_chrome():
    if os.path.isfile('/usr/bin/chromium-browser'):
        return '/usr/bin/chromium-browser'
    Elif os.path.isfile('/usr/bin/chromium'):
        return '/usr/bin/chromium'
    Elif os.path.isfile('/usr/bin/chrome'):
        return '/usr/bin/chrome'
    Elif os.path.isfile('/usr/bin/google-chrome'):
        return '/usr/bin/google-chrome'
    else:
        return None

Und dann:

if version.parse(Selenium.__version__) >= version.parse("3.0"):
    opts = Options()
    opts.binary_location = get_chrome()
    opts.add_argument('--headless')
    opts.add_argument('--no-sandbox')
    opts.add_argument('--disable-dev-shm-usage')

    driver = webdriver.Chrome(chrome_options=opts)
    driver.maximize_window()
else:
    opts = Options()
    opts.headless = True
    opts.binary_location = get_chrome()

    driver = webdriver.Chrome(chrome_options=opts)
    driver.maximize_window()

agent = driver.execute_script('return navigator.userAgent')
1
jww

Wenn Sie Chrome verwenden möchten, müssen Sie zunächst die binäre URL von der folgenden URL herunterladen: -

https://sites.google.com/a/chromium.org/chromedriver/

Nun müssen Sie diesen Treiberpfad an den Selenium-Web-Treiber übergeben. 

Wenn Sie Python verwenden, sollte der Code wie folgt aussehen:

    driver = webdriver.Chrome('C:\Users\name\Downloads\chromedriver_win32 (3)\chromedriver.exe')
    driver.implicitly_wait(30) # seconds
    driver.get('https://www.google.co.in/')

Hoffe es wird dir helfen :)

0
Shubham Jain

Vielen Dank, dass ich 2,5 Stunden lang damit zu kämpfen hatte, da ich nicht wusste, wie man den Pfad für die ausführbare Chrome-Datei in Python setzt. Funktioniert jetzt

options = Options()
options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
0
Rembau