Python'da yazılmış Brave Browser pass service nesnesiyle Selenyum kullanın

0

Soru

# TLDR Brave browser'ı python'da yazılmış selenyum ile kullanmak istiyorum ancak işe yarayan herhangi bir güncel çözüm bulamıyorum.

Bu kod çalışır

from selenium import webdriver
option = webdriver.ChromeOptions()
option.binary_location = r'C:\Program Files\BraveSoftware\Brave- 
Browser\Application\brave.exe'
driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe', 
options=option)
driver.get("https://www.google.com")
driver.quit()

ancak executable_path kullanımdan kaldırıldı:

C:\Users\USER\PycharmProjects\pythonProject\sol2.py:5: 
DeprecationWarning: executable_path has been deprecated, please pass in a Service object 
driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe', options=option)

Bunu youtube'da buldum: https://www.youtube.com/watch?v=VMzmVFA-Gps

# import statements
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# Declare variables and setup services
driverService = Service('C:/webdrivers/chromedriver.exe')   
# 1. Passes the chromedriver path to the service object
# 2. stores the service object in the s variable
driver = webdriver.Chrome(service=driverService)            
# 1. Passes service object s into the webdriver.Chrome  
# 2. Stores object in driver variable 

# Body (actually doing stuff)
driver.maximize_window()                # maximizes the browser window
driver.get("https://www.google.com")    # navigates to google.com
myPageTitle = driver.title              
# gets the title of the web page stores in myPageTitle
print(myPageTitle)                      # prints myPageTitle to Console
assert "Google" in myPageTitle          
# checks myPageTitle to ensure it contains Google

# clean up
driver.quit()                           # closes the browser

Bu kodu çalıştırdığımda alıyorum: selenyum.ortak.istisna.WebDriverException: İleti: bilinmiyor hata: Chrome ikili dosyası bulunamıyor

Bu kod, Google Chrome'un bilgisayarınıza girmesine izin verdiğiniz sürece çalışır. Bilgisayarımda Chrome'u istemiyorum.

Sorun şu ki, selenyumun Chrome yerine brave kullanmasını nasıl sağlayacağımı anlayamıyorum.

Bu yazı itibariyle aşağıdakileri kullanıyorum:
Windows 11 Ana Sayfa
Selenyum v4.0.0
Python v3. 10
ChromeDriver 95.0.4638.69
Cesur Tarayıcı Sürüm 1.31.91 Krom: 95.0.4638.69 (Resmi Yapı) (64-bit)

Birisi lütfen bunun brave browser'daki geçerli (okunmamış) kodla nasıl çalışacağını açıklayabilir mi? Zaman ayırdığınız için teşekkürler.

brave brave-browser python selenium
2021-11-15 06:36:37
2
0

cesur ikiliye giden yolu belirlemelisin.

options.setBinary("Path to brave.exe");

Bu web sitesine gidin:

https://mundrisoft.com/tech-bytes/how-to-execute-selenium-script-in-brave-browser/

2021-11-15 06:48:27

Bağlantıda belirtilen bu komut dosyası java ile yazılmıştır. Bunu python'a dönüştüremem ve dönüştürmek istemiyorum. Java'yı bilmiyorum. lütfen python'a kodlayın.
Ian Fischer
0

bir tarama bağlamı başlatmak için şunları yapmanız gerekir:

  • Kullan...binary_location cesur ikili konuma işaret etmek için öznitelik.
  • Cesur tarayıcıyı başlatmak için chromedriver yürütülebilir dosyasını kullanın.

Kod bloğu:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

option = webdriver.ChromeOptions()
option.binary_location = r'C:\Program Files (x86)\BraveSoftware\Brave-Browser\Application\brave.exe'
driverService = Service('C:/Users/.../chromedriver.exe')
driver = webdriver.Chrome(service=driverService, options=option)
driver.get("https://www.google.com")

Not: Kullanımdan kaldırmawarning: executable_path kullanımdan kaldırıldı, sınama yürütmenizi etkilemeyen zararsız bir uyarı iletisidir ve yine de yoksayabilirsiniz.


Referanslar

Birkaç ilgili ayrıntılı tartışmayı şu adreste bulabilirsiniz::

2021-11-15 22:26:25

kodlayıcıların kullanımdan kaldırma uyarısını yapmaktan rahatsız olmalarının bir nedeni var. Ben onun bilge itiraz kodu kullanmayı düşünmüyorum. Doğru yol, hizmet nesnesini iletmektir. Brave için yapmaya çalıştığım şey bu.
Ian Fischer

proper way is to pass the service object Kodum buna dayanıyor.
DebanjanB

Benim özür dilerim. Gözlerim doğrudan Nota gitti. Aslında koda bakmadan aynı kodu tekrarladığınızı varsaydım.
Ian Fischer

Görünüşe göre silahı çok erken atlıyorsun. Çözümdeki kodu en az bir kez çalıştırmayı denediniz mi?
DebanjanB

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................