Çözüldü Python Selenium WebDriver hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
8 Eylül 2018
Mesajlar
9.757
Makaleler
8
Çözümler
237
Yer
İstanbul
Selenium ile Python kullanarak web sayfalarına erişim sağlamaya çalışırken, 'str' object has no attribute 'capabilities' hatasını alıyorum. webdriver.Chrome() fonksiyonu çalışmıyor.

Chrome veriyonum 133, ben en fazla 115. sürümün web sürücüsü olduğundan onu indirip denedim.

Ben ChromeDriver sürüm uyumsuzluğu veya driver_path'ın yanlış belirtilmesinden olabileceğini düşündüm ama yolu doğru girdim. Sürücü sürümü uyumsuzluğunan olabilir mi?

Python:
from bs4 import BeautifulSoup
from selenium import webdriver 
import time

driver_path = r"C:\Users\Emre\Downloads\chromedriver_win32\chromedriver.exe" 
browser = webdriver.Chrome(driver_path)

browser.get("https://www.sahibinden.com/satilik/samsun-atakum")


time.sleep(3)


page_source = browser.page_source


soup = BeautifulSoup(page_source, 'html.parser')


titles = soup.find_all('h3', class_='searchResultsItem-title') 

for title in titles:
    print(title.get_text())


browser.quit()
 
Çözüm
"Session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 134.0.6998.89 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe"

Hocam sürüm çakışması yaşıyorum sanırım ama en üst sürücü sürümü 115.
Degil.
1741717102864.png

Uyari: Chrome 115 veya daha yeni bir surumunu kullaniyorsaniz, Test icin Chrome kullanilabilirlik panosuna bakin. Bu panoda, belirli ChromeDriver surumlerini indirmek icin JSON uc noktalarini bulacaksiniz.

Yillardir selenium kullanmiyorum ama dokumantasyonda su sekilde verilmis:

Python:
  options = get_default_chrome_options()
    driver = webdriver.Chrome(options=options)

"str" path vermiyorsun , options veriyorsun parametre olarak. O yuzden "str" de capabilities bulamadim diyor, muhtemelen options class'inda var.
ChromeDriver'in parametleri degisti ciddi bi sekilde. Onceden gerekli parametreleri init'de alirken simdi ekstra siniflar kullaniyor. Ek olarak dokuman yaniltici anlatiyor. get_default_chrome_options diye bir metod yok import edilebilen. Kendi test kodlarindaki kodlari ornek olarak kullandiklari icin boyle bir kullanim paylasmislar. Bahsi gecen method'un implementasyonu;
Python:
def get_default_chrome_options():
    options = webdriver.ChromeOptions()
    options.add_argument("--no-sandbox")
    return options
Bkz: seleniumhq.github.io/examples/python/tests/browsers/test_chrome.py at trunk · SeleniumHQ/seleniumhq.github.io

Ancak ChromeOptions chrome'un kendisiyle alakali. Eger chromedriver icin arguman verilecekse Service kullanilmali.
Bkz: Driver Service Class

Ornek kullanimi:
Python:
service = webdriver.ChromeService(executable_path=chromedriver_bin)
driver = webdriver.ChromeDriver(service=service)
Yillardir selenium kullanmiyorum ama dokumantasyonda su sekilde verilmis:

Python:
  options = get_default_chrome_options()
    driver = webdriver.Chrome(options=options)

"str" path vermiyorsun , options veriyorsun parametre olarak. O yuzden "str" de capabilities bulamadim diyor, muhtemelen options class'inda var.
 
Yillardir selenium kullanmiyorum ama dokumantasyonda su sekilde verilmis:

Python:
  options = get_default_chrome_options()
    driver = webdriver.Chrome(options=options)

"str" path vermiyorsun , options veriyorsun parametre olarak. O yuzden "str" de capabilities bulamadim diyor, muhtemelen options class'inda var.

"Session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 134.0.6998.89 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe"

Hocam sürüm çakışması yaşıyorum sanırım ama en üst sürücü sürümü 115.
 
"Session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 134.0.6998.89 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe"

Hocam sürüm çakışması yaşıyorum sanırım ama en üst sürücü sürümü 115.
Degil.
1741717102864.png

Uyari: Chrome 115 veya daha yeni bir surumunu kullaniyorsaniz, Test icin Chrome kullanilabilirlik panosuna bakin. Bu panoda, belirli ChromeDriver surumlerini indirmek icin JSON uc noktalarini bulacaksiniz.

Yillardir selenium kullanmiyorum ama dokumantasyonda su sekilde verilmis:

Python:
  options = get_default_chrome_options()
    driver = webdriver.Chrome(options=options)

"str" path vermiyorsun , options veriyorsun parametre olarak. O yuzden "str" de capabilities bulamadim diyor, muhtemelen options class'inda var.
ChromeDriver'in parametleri degisti ciddi bi sekilde. Onceden gerekli parametreleri init'de alirken simdi ekstra siniflar kullaniyor. Ek olarak dokuman yaniltici anlatiyor. get_default_chrome_options diye bir metod yok import edilebilen. Kendi test kodlarindaki kodlari ornek olarak kullandiklari icin boyle bir kullanim paylasmislar. Bahsi gecen method'un implementasyonu;
Python:
def get_default_chrome_options():
    options = webdriver.ChromeOptions()
    options.add_argument("--no-sandbox")
    return options
Bkz: seleniumhq.github.io/examples/python/tests/browsers/test_chrome.py at trunk · SeleniumHQ/seleniumhq.github.io

Ancak ChromeOptions chrome'un kendisiyle alakali. Eger chromedriver icin arguman verilecekse Service kullanilmali.
Bkz: Driver Service Class

Ornek kullanimi:
Python:
service = webdriver.ChromeService(executable_path=chromedriver_bin)
driver = webdriver.ChromeDriver(service=service)
 
Son düzenleme:
Çözüm
İkinize de teşekkür ederim hocalarım. Aynı soruna sahip kullanıcıların faydalanabilmesi için kodun son kısmını ekliyorum.

Python:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# WebDriver path
driver_path = r"C:\Users\Emre\Desktop\chromedriver-win64\chromedriver.exe"

# Chrome Options
options = Options()
options.add_argument("--start-maximized")  # Tarayıcıyı tam ekran başlatmak için

# ChromeDriver'ı başlatmak için Service
service = Service(driver_path)

# WebDriver'ı başlatmak
browser = webdriver.Chrome(service=service, options=options)

# Sayfayı açmak
browser.get("https://www.sahibinden.com/satilik/samsun-atakum")

Dediğiniz yerden son sürüm sürücüyü indirdim.
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı